提供: Japanese Scratch-Wiki
![]() |
この記事は2019年9月の注目の記事です。 |
micro:bitにはたくさんのボタンやセンサーがあるため、応用次第では様々なゲームコントローラーが作成できるが、
ここでは、
- Aボタン/Bボタンを使用したもの
- 傾きセンサーを使用したもの
- 以上2つを組み合わせたもの
- その他の方法
を紹介する。
共通:micro:bitを使用するために
Scratchでmicro:bitを使用するには、Scratch Linkをインストールする必要がある。
詳しくは、micro:bitの接続を参照。
方法1:Aボタン/Bボタンを使用したもの
この方法は簡単であるため、初心者にもおすすめする。
スプライトを動かす
動かそうとするスプライト(例:Scratchキャット)に、次のようにプログラムする:
ボタン(A v)が押されたとき::hat microbit x座標を(-10)ずつ変える ボタン(B v)が押されたとき::hat microbit x座標を(10)ずつ変える
もしくは、
@greenFlagが押されたとき::hat events//こうすると、ボタンを長押しした分だけ移動するようになる。 ずっと もし <ボタン(A v)が押された ::microbit> なら x座標を(-10)ずつ変える end もし <ボタン(B v)が押された ::microbit> なら x座標を(10)ずつ変える end end
これだけでも、『Aボタンを押したら左に動く』、『Bボタンを押したら右に動く』という最低限の動きをするゲームコントローラーが完成した。これを応用すれば、これから紹介する『背景を動かす』ことも簡単である。
背景を動かす
スプライトの位置を動かさずに、スプライトが動いているように見せる場合は、この方法が便利である。
動かそうとする背景(スプライトとして作成する)に、次のようにプログラムする:
ボタン(A v)が押されたとき::hat microbit x座標を(10)ずつ変える ボタン(B v)が押されたとき::hat microbit x座標を(-10)ずつ変える
もしくは、
@greenFlagが押されたとき::hat events ずっと もし <ボタン(A v)が押された::microbit> なら x座標を(10)ずつ変える end もし <ボタン(B v)が押された::microbit> なら x座標を(-10)ずつ変える end end
すると、『Aボタンが押されたとき、背景を後ろに動かし、スプライトが動いて見える』ことになる。
方法2:傾きセンサーを使用したもの
micro:bitには『加速度センサー』が付いており、Scratchではこれを使い、傾きや動きの有無、振動、ジャンプなどを検知できる。
ここでは、空中に浮かんでいるスプライト(例:『Bat』)を動かすとして、プログラムを紹介する。
スプライトを上下左右に動かす
例えば、次のようにプログラムする:
@greenFlagが押されたとき::hat events ずっと x座標を(((右 v)方向の傾き::microbit)* (2))にする//2倍にすることで、ステージ全体を移動できるようになる。 y座標を(((前 v)方向の傾き::microbit)* (2))にする//上と同じ。2倍以外でも良い end
こうすることで、『micro:bitを地面に対して平行に持った時、ステージのほぼ中央』に、『手前に傾けるとステージの下の方』に動かされるようになる。
方法3:以上2つを組み合わせたもの
『方法1』と『方法2』を組み合わせると、もっとゲームコントローラーらしくなる。
宇宙防衛ゲームを作る
例として、『宇宙防衛ゲーム』を作ることにする。
まず、『宇宙船』『弾』『敵』という名前のスプライトを用意する。
次に、宇宙船をプログラムする。今回は、『micro:bitを傾けたらステージ上を移動する』、『Aボタンを押すと弾を発射する』ようにする。
ステージ上を移動するプログラム
@greenFlagが押されたとき::hat events ずっと x座標を(((右 v)方向の傾き::microbit)* (2))にする y座標を(((前 v)方向の傾き::microbit)* (2))にする end
Aボタンで弾を発射するプログラム
@greenFlagが押されたとき::hat events ずっと もし<ボタン(A v)が押された::microbit>なら (0.5)秒待つ//連射を防止するためのもの。なくても良い [弾が発射された v]を送る end end
続いて、弾をプログラムする。
弾を発射するプログラム
[弾が発射された v]を受け取ったとき (宇宙船 v)へ行く 表示する (自分自身 v)のクローンを作る クローンされたとき 表示する (Pew v)の音を鳴らす (1)秒待つ このクローンを削除する
最後に、弾がぶつかったかどうか判定するプログラムを敵に作る。
敵移動プログラム
@greenFlagが押されたとき::hat events ずっと ((1)から(4)までの乱数)秒待つ (どこかの場所 v)へ行く end
敵と弾の判定プログラム
@greenFlagが押されたとき::hat events ずっと もし<(弾 v)に触れた>なら [ゲームクリア!]と(5)秒言う [すべて v]を止める end end
これで、一連の流れは終了である。
その他の方法
現在micro:bit拡張機能のブロックは10種類あり、ここまでで紹介したもの以外のゲームコントローラーが作成できる。
例えば、
- 『動いたとき』と使って、いわゆる『爆弾ゲーム』を作成する。
- 『ピンがつながったとき』を使って、複数の入力に対応させる。
など、様々なことができる。
色々なアレンジをして、独自のゲームコントローラーを作成してみよう。