Scratchプログラミング入門 |
Scratchは表示される解像度が低いので、表示域をできるだけ広く使うためにキャラクタを縮小します。
今回は数回の敵の攻撃に耐えるために変数Lifeを用意します。
「変数を作る」で変数を作ります。
同時に2発の弾を発射するために、弾のスプライトを2つ用意しておきます。
発射ボタンが押されたらそれぞれ2つの弾のクローンを作ります。
Ball 一つ目の弾
Ball2 二つ目の弾
座標を指定してクローンを作る場合、クローンに直接値を渡す方法がありません。
そこで、変数を用意してそれに座標のデータを入れ、クローンを作り、その作成時に変数から座標を指定します。
しかし、この方法では同時に複数のクローンが作成する場合、処理のタイミングで、最後に設定した変数の値でしかクローンが作られません。
【例】
変数shotXに値をいれクローンをつくります。この例だと「zキーが押された」処理がすべて終わった後、「クローンされたとき」の処理が2回行われます。
したがって、変数shotXは10で2回行われ、ビームは2つとも同じ座標に表示されてしまいます。
この問題を解決するために別の方法を使ってみます。
リスト(配列)に座標を追加してクローンを作成します。。
クローンはリストの最後から追加されたデータを取り出し、取り出したデータを削除します。(これをスタック処理(後入れ先出し)と言います)
これにより、クローンが作成されるたび、別の座標が取得できるので、同時に異なった座標へ複数のクローンを作ることができます。
【完成版】