スポンサーリンク
Scratch

micro:bitでシューティングゲームを作る

Scratch

micro:bitで簡単なゲームを作ってみましょう。
今回はシューティングゲームです。
シューティングゲームに必要な基本的な動きを学ぶことができます。
これを応用して、Scratchでストライプを動かしてきれいなゲームにするのも良いでしょう。
5分もあればコピーできますのでぜひ試してください。

スポンサーリンク

遊び方

LEDの一番上の列で点灯しているのが敵です。
LEDの一番下の列で点灯しているのが自分です。
敵は左から右へ移動します。
自分はAボタンで左へ移動、Bボタンで右へ移動します。
A+Bボタンでミサイルを発射します。
敵にミサイルが当たると音楽が鳴ります。
ミサイルは自分から上に向かって飛んでいきます。

プログラム解説

初期化

まずは変数の初期化です。
敵の初期位置、自機の初期位置とLEDの点灯、効果音のボリュームを決めます。
敵は左から右に移動させる予定で、初めは出現していないことにするので-1の位置に隠しておきます。
自機は真ん中に表示させます。

敵の動き

敵は1秒ごとに右に移動していきます。
敵の位置は一番上の行を左から右に移動します。
今表示しているLEDを消したら、一つ右のLEDを点灯します。
一番右まで行ったら(4より大きくなったら)左(-1)に戻します。

Aボタンを押したら左に移動

Aボタンを押したら自機の位置を左に移します。
今点灯しているLEDを消して一つ左のLEDを点灯します。
ただし、画面から消えてしまわないように0より小さくならないようにします。

Bボタンを押したら右に移動

Aボタンと反対の動きを作っています。

ミサイル発射と当たり判定

A+Bボタンを押したときにミサイルを発射します。
自機の場所から上向きにLEDを点灯させていきます。
動きは敵や自機と似ており、点灯と消灯を繰り返しています。
0.2秒間隔で上に移動していきます。
点灯する場所は自機の一つ上(3の場所)から開始しています。

カウンタ=0時に当たり判定を計算します。
カウンターが0になったとき、実際にはまだy=1の場所を点灯した状態です。
この時y=0の場所に敵(LEDが点灯)が居たらヒットしたと判断して音楽を鳴らします。

仕様変更があったようで、「メロディを開始する」ブロックが使用できなくなったようです。
「メロディ(上級)」の「鳴らす」ブロックを使って代用してください。

コメント

  1. なかは より:

    A+Bボタンの時、自機の上からたまが出るのではなく、1番左の端からしか出ないのですが、どうすればいいですか。あと、メロディを開始するのブロックがない場合、どうすればいいのですか

    • おく より:

      ご覧いただきありがとうございます。
      作られたプログラムを見てみないと正確にはわかりませんが。
      一番はしからでないという事は変数「自機」の値がおかしいのだと思います。
      AまたはBボタンで自機の位置を移動できるのであれば、「ボタンAが押されたとき」「ボタンBが押されたとき」のプログラムは正しいと思います。(移動ができなければこのブロックに誤りがありそうです)
      あとは、玉の発射位置は「ボタンA+Bが押されたとき」のブロックで変数「自機」の値で決めています。
      このブロックを見直してみてください。

      「メロディを開始する」ブロックは仕様変更があったのか無くなったみたいですね。
      メロディ上級の「鳴らす」ブロックを使ってみてください。
      「鳴らす メロディ ジャンプアップ バックグラウンドで一度だけ」
      のブロックを作ってみてください。

タイトルとURLをコピーしました