初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

子どもでもわかるSCRATCH入門

23.インベーダーゲームを作ろう その5

[ 22.インベーダーゲームを作ろう その4 ] の続きです。
自機のビームに当たり判定を入れて敵を撃墜できるようにしました。
また、敵もビームを発射する仕組みを作りました。

 

1. 自機が爆発する絵を用意する

敵のビームが自機に当たった時の絵を用意します。

リミックスした人は player スプライトの中に既に有ります。

2枚の絵を使って動いているように見せる

2番目と3番目のコスチュームを交互に表示して、爆発しているように見せます。

コスチューム名は、爆発1と爆発2です。

 

 

2. 自機と敵ビームの当たり判定を行う

敵ビームが自機と当たった時、自機が爆発するように当たり判定を入れます。

自機のスクリプトを編集します。

自機がやられた時の処理を追加する

追加 ① では、コスチューム1(砲台の絵) にしています。
再実行した時に爆発の絵から切り替えるためです。

追加 ② では、敵ビーム beamE と当たったか判定しています。
当たっていれば gameover メッセージを送り、その後でスクリプトを停止します。

追加 ③では、gameover メッセージを受け取ったとの処理になります。
爆発のコスチュームを交互に表示させて爆発しているように見せています。

 

 

3. 敵の進攻を止める

自機がやられたら、敵の進攻を停止するようにします。

敵 Gobo に次のスクリプトを追加します。

スプライト内の全てのスクリプトを停止する

自機がやられた時に gameover メッセージが送られます。これを受け取ったとき
敵内で動いているすべてのスクリプトを停止しています

 

 

4. 自機がやられたらビームを撃てなくする

今のままでは自機が爆発中でも、スペースキーを押すとビームが撃てます。
自機が稼動していない場合は、ビームが撃てないようにします。

状況フラグとして自機の稼動変数を作ります。

稼働中かどうか確認する為の変数を用意する

自機の稼動変数が0のときビームが撃てない1のときビームが撃てる
という感じで使います。

 

自機のスクリプトを編集します。

状況を管理するフラグ変数を作る

ゲームオーバーになったら自機の稼動変数を0にしています。

 

beam のスクリプトを編集します。

状況フラグを見て機能を制限する

自機の稼動が0のとき、このスクリプトを止めるが実行されます。
これにより0のときは、スペースキーが押されてもビームは発射されません。

 

 

5. ゲームオーバーを表示する

自機がやられた後にゲームオーバーの文字を表示します。

まず、GAME OVER を表示する絵を用意します。
リミックスした人は sprite1 を使います。

ゲームオーバーの処理を追加する

 

スクリプトを次のようにします。

ゲームオーバーのスクリプト

通常は隠した状態で、gameover メッセージを受け取ったら表示します。
表示するまでの時間は適当です。
好みで調整して下さい。

 

実行してみましょう。

画面が表示されない場合はここをクリック

 

 

6. 敵に侵略されたらゲームオーバーにする

敵のビームで自機がやられた以外にもゲームオーバーになる条件があります。
それは、敵が自機と同じ位置まで進攻してきた場合です。
同じ位置にいるということは、もう敵を攻撃できない訳です。

Gobo の進攻スクリプトを編集します。

ゲームオーバーになる条件が複数ある場合

進攻処理で敵が1段降りたときにy座標をチェックします。
y座標が-130 よりも小さければ gameover メッセージを送ります。

 

実行してみると、敵が自機と同じ位置まで進攻したら自機が爆発します。

特定の位置まで敵が侵略したらゲームオーバー

 

次回に続きます。