Scratchでシューティングゲームを作ろう!(4)

敵の弾を発射する!

こんにちは、おおやけハジメです。

四回目は敵の弾を発射するところを作りました。

https://scratch.mit.edu/projects/146790134/scratch.mit.edu

敵の弾のスプライト新規作成

敵が撃つ弾のスプライトを作成します。

f:id:digitarhythm:20170225232355p:plain

一番右の「lightning」が敵の弾になります。

スクリプト

弾のスクリプトはこんな感じになります。

f:id:digitarhythm:20170226013737p:plain

「データ」ですべてのスプライト用の変数「teki_tama_start_x」と「teki_tama_start_y」を作っておきます。

f:id:digitarhythm:20170225233448p:plain

このスプライトもクローンして使用するため、緑の旗がクリックされたと同時に隠します。 そのままだとちょっと大きすぎるので、サイズを30%にします。

そして、クローンされた時の処理は、最初にx座標、y座標をそれぞれ「teki_tama_start_x」と「teki_tama_start_y」に設定します。 その後に「表示する」にして、画面の端に着くまでy座標を減らしていきます。 端に触れた場合はクローンを削除します。

敵が弾を発射する

次に敵が弾を発射するスクリプトを作ります。 前回から増えたところは、下記のスクリプトになります。

f:id:digitarhythm:20170225233828p:plain

「0〜30」までの乱数を生成し、0だった場合に弾を発射します。 「teki_tama_start_x」と「teki_tama_start_y」にそれぞれ自分のx座標、y座標を代入し「create_lightning」メッセージを送ります。

敵がクローンされた時のスクリプトの全体は下記のようになります。

f:id:digitarhythm:20170225234059p:plain

敵の弾をクローンする

敵のスクリプトで「create_lightning」メッセージを送りましたが、まだ受け取る処理を作っていませんでした。 「ステージ」のスクリプトに「create_lightningを受け取った時の処理を作ります。

f:id:digitarhythm:20170226014036p:plain

敵を三匹にする

敵が一匹だと寂しいので、三匹出てくるようにします。 ステージのスクリプトで敵を生成しているところを三匹生成するように修正します。

f:id:digitarhythm:20170225234157p:plain

これで、敵が弾を撃ちながら落ちて来るようになると思います。