レッツ!スクラッチ (10) インベーダーゲームをつくろう ― 敵を倒せるようにしよう!
今回でほぼ、ゲームとして遊べるプログラムが完成します。
今回は、ロケットがうった、たまが敵に当たったら敵を消す、という処理をつくります。
たまが敵に当たった時の処理
たまが敵に当たったかどうかの判定は、Ballスプライトで設定します。
Ballスプライトをクリックします。
「クローンされたとき」ブロックの、「もしy座標>170なら」ブロックの下に、「もし なら」ブロックを入れます。
「もし なら」の穴に「Ghostに触れた」ブロックを入れます。
「(メッセージ)を送る」ブロックをその中に入れて、「あたり判定」という新しいメッセージをつくります。
「たまの存在を0にする」ブロックをその下にくっつけます。
「このクローンを削除する」ブロックをつけます。
これで、発射したたまが、敵にあたったら、「あたり判定」というメッセージを送り、たまを消します。
あたり判定を受け取る
たまが当たったら消す、などの処理をするのはGhostスクリプトになるので、あたり判定を受け取った後の処理もGhostスクリプトでつくります。
スプライトペインから、「Ghost」をクリックしてください。
「あたり判定を受け取ったとき」ブロックを空白の位置におきます。
「このクローンを削除する」ブロックをくっつけます。
これで、たまが敵にあたったら、敵が消えるようになります。
でも、これだけだと一回敵を倒したら、それ以降敵が出てこなくなってしまいます。
そこで、敵が消えたら、新しい敵を表示するようにします。
新たな敵を出現させる
敵を倒したら、別の敵を出現させるためには、メッセージを送ります。
「あたり判定を受け取ったとき」ブロックの「このクローンを削除する」ブロックの上に、「(メッセージ)を送る」ブロックをくっつけて、新しいメッセージとして、「敵の出現」というメッセージをつくります。
「敵の出現を受け取ったとき」ブロックを空白の部分に置きます。
「自分自身のクローンを作る」ブロックをその下にくっつけます。
これで、敵を倒すと別の敵が表示されるようになります。
今回はここまでです。
これでほとんどゲームとしての動きはプログラミングできました。
でも、まだゲームとしての面白みが足りないですよね?
そうです、敵を倒したら点が入らなければ面白くありません。
次回は、敵を倒したら点数が入ったり、ある点数を越えたら敵のスピードが速くなる、といったゲームを面白くする工夫をしていきます。
あと少しで完成ですよ~!
→「レッツ!スクラッチ」コンテンツリスト
関連記事