弾幕についてはいくつか作りかたがあり、以前もひとつ紹介しました。
以前の記事と違って、今回は10発のボールを、全方向ランダムで発射するプログラムをつくりましょう。
使うスプライトはロボットとボール。
ロボットは、左右にずっと動きつづけ、端に着いたら跳ね返るようにします。
ロボットにコードをつくりましょう。
今回も、3秒おきに弾幕をつくるようにします。
以前にも紹介したとおり、システムタイマーの切り下げと、「割った余り」をつかって、3秒おきを表現しましょう。
3秒おきにメッセージを送るようにしました。
1秒待つをつかって制御時間を調整
次はボールです。
まずは一つ目のコード。
ロボットから発射するので、ずっとロボットにくっついていくんですね。
そして、メッセージ1を受け取ったときにクローンを生成。
10発をランダムの方向に配置して発射なので、このようにコードをつくってみました。
プレイしてみましょう。
ボールが出現し過ぎて、大変なことになってしまいました。
なぜかというと、ロボットから送っているメッセージ1に原因があります。
3で割った余りが0になっている時間というのは、およそ1秒間あるんですね。
1秒間、ずっとメッセージ1の信号を送り続けていることになります。
ということは、メッセージ1を受け取ったボールのほうも、クローンを1秒間ずっと生成し続けることに。
ここではとりあえず、「1秒待つ」のコードを追加して、これを回避しました。
プレイしてみましょう。
ずっと信号を受け続けることなく、10発が全方位ランダムで、発射されるようになりました。