今回は micro:bit(マイクロビット)を使ったシューティングゲーム の作り方を紹介します。

micro:bitは、手のひらサイズの小さなコンピューターですが、真ん中にある 5×5のLED を使って、ゲームを作ることもできます。
Scratchをある程度触ったことがある子なら、「次のステップ」としてmicro:bitに挑戦するのはかなりおすすめです。

今回は、上から降ってくる敵をよけながら、A+Bボタン同時押しでビームを撃って倒すシューティングゲームを作ります。夏休みの自由研究にも使いやすい内容です。

結論まとめ
  • micro:bitの5×5LEDを使って、シューティングゲームが作れる
  • ロゴをタッチすると「3・2・1」のカウントダウンでゲーム開始
  • Aボタンで左、Bボタンで右に移動
  • A+B同時押しでビームを発射
  • 敵に3回ぶつかるとゲームオーバー
  • 倒した敵の数がスコアとして表示される
  • MakeCodeのシミュレーターで、実機に転送する前に動きを確認できる

micro:bitでどんなゲームを作るの?

今回作るのは、micro:bitのLED画面を使ったシューティングゲームです。

ゲームの流れはこんな感じです。

  1. ロゴを短くタッチする
  2. 「3・2・1」のカウントダウンが始まる
  3. 上から敵が降ってくる
  4. 自分はA/Bボタンで左右に移動
  5. A+B同時押しでビーム発射
  6. 敵に当たるとライフが減る
  7. 敵をビームで倒すとスコアが増える
  8. ライフがなくなるとゲームオーバー

見た目は小さなLEDだけですが、ちゃんと「避ける」「撃つ」「倒す」「スコアが増える」というゲームの要素が入っています。


まずはMakeCodeで新しいプロジェクトを作る

micro:bitのプログラムは、MakeCode(メイクコード)というサイトで作れます。

「新しいプロジェクト」からスタートし、今回は「シューティングゲーム」のような名前をつけます。
MakeCodeにはシミュレーターがついているので、実際にmicro:bitへダウンロードしなくても、画面上で動きを確認できます。

これはかなり便利です。
実機に転送する前に「敵がちゃんと動くかな?」「ボタンで移動できるかな?」を試せるので、作りながら修正しやすいです。


ロゴタッチでカウントダウンを作る

ゲーム開始の合図には、micro:bitのロゴタッチを使います。

「ロゴが短くタップされたとき」のブロックを使い、LED画面に「3」「2」「1」と順番に表示します。

ここで注意したいのが、MakeCodeの「一時停止」は ミリ秒 で指定することです。

1000ミリ秒 = 1秒、500ミリ秒 = 0.5秒です。

Scratchの「1秒待つ」と少し表記が違うので、ここは子どもが混乱しやすいポイントです。

ライフと自分のキャラクターを作る

次に、ゲームの中で使う「自分」を作ります。

MakeCodeのゲーム機能では、スプライトを使えます。Scratchのスプライトに近いイメージですが、micro:bitでは 変数にスプライトを入れる形で作ります。

今回は「自分」という変数を作り、LED画面の下の方に表示します。

micro:bitの座標は少し特殊で、左上が「X:0・Y:0」になります。

Xは右に行くほど増え、Yは下に行くほど増えます。
ScratchではYを増やすと上に行きますが、micro:bitでは逆に下へ進むので注意が必要です。

敵をランダムな場所から落とす

敵もスプライトとして作ります。

敵は上から降ってきてほしいので、Y座標は一番上の0にします。
X座標は毎回同じだとつまらないので、0〜4の乱数にします。

micro:bitのLEDは横5列なので、X座標は

0、1、2、3、4

のどれかになります。

敵は0.5秒ごとにY座標を1ずつ増やして、上から下へ落ちていきます。
もし敵が自分に触れたら、ライフを1つ減らして、敵を削除します。

これで「敵に当たったらダメージを受ける」仕組みができます。


Aボタン・Bボタンで左右に動かす

次はプレイヤーの操作です。

  • Aボタンが押されたら、自分を左へ移動
  • Bボタンが押されたら、自分を右へ移動

左へ進むときはXを-1、右へ進むときはXを+1します。

micro:bitのA/Bボタンは直感的なので、子どもでも操作しやすいです。
「左ボタンを押したら左、右ボタンを押したら右」という感覚がそのままゲームになります。


A+B同時押しでビームを撃つ

シューティングゲームなので、攻撃も作ります。

A+Bボタンが同時に押されたときに、「ビーム」というスプライトを作ります。
ビームの最初の場所は、自分と同じX座標・Y座標にします。

そこからビームを上に進ませます。
ここでもmicro:bitの座標に注意が必要です。

上に進ませたいときは、Y座標を -1 します。
Scratchに慣れている子ほど逆に考えがちなので、「micro:bitではYを減らすと上」と覚えておくと良いです。

ビームが敵に当たったらスコアアップ

ビームが敵に触れたら、

  • スコアを1増やす
  • ビームを削除
  • 敵を削除

という処理を入れます。

これで、敵を撃つと得点が増えるようになります。
スコアがあるだけでゲームのやる気がかなり変わります。

また、ビームがずっと残るとゲームがややこしくなるので、一定回数進んだらビームも削除します。
「作ったものを消す」処理は、ゲーム作りではかなり大事です。

ゲームオーバーとスコア表示

ライフがなくなると、MakeCodeのゲーム機能でゲームオーバーになります。
ゲームオーバー後には、スコアも表示されます。

今回のゲームでは、倒した敵の数がスコアになります。
「今回は何点だった?」「次はもっと上を目指そう!」と、繰り返し遊びたくなる仕組みになります。

動画で動きを確認してみてください

この記事で全体の流れは分かりますが、micro:bitは座標やLEDの動きが少し特殊なので、動画で見るとかなり理解しやすいです。

特に、

  • MakeCodeの画面の開き方
  • ロゴタッチのブロックの場所
  • 5×5LEDの座標の考え方
  • A/Bボタンで自分が動く様子
  • ビームと敵が当たったときの動き

は、実際の画面を見た方がスムーズです。

まとめ

micro:bitは小さな基板ですが、5×5LED、ボタン、タッチセンサーなどを使って、しっかりゲームを作ることができます。
今回のシューティングゲームでは、カウントダウン、左右移動、ビーム発射、敵のランダム出現、スコア表示まで作れるので、ゲーム制作の基本がたくさん詰まっています。

Scratchに慣れてきた子が、次にmicro:bitへ進むと「画面の中だけじゃなく、実物が動く」楽しさを感じやすいです。自由研究にもぴったりですね。

当教室でも、お子さまのレベルに合わせてScratchからmicro:bit、ロボット、電子工作へとステップアップできるようにサポートしています。