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

弾を撃つ!

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

三回目は敵を倒すための弾を発射出来るようにしました。

シューティングゲームを作ろう(3) Scratchプロジェクト

scratch.mit.edu

スプライト新規作成

まず最初に弾のスプライトを新規作成します。

f:id:digitarhythm:20161227182026p:plain

キャラの絵はなんでもいいのですが、今回はBallを使いました。

変数作成

次に、ボールを制御するための変数「tama」を作成します。「データ」の「変数を作る」をクリックするとダイアログが出ます。

f:id:digitarhythm:20161227182248p:plain

すべてのスプライト用」で「tama」という変数を作成します。

f:id:digitarhythm:20161227182309p:plain

この変数は、発射できる弾の数を制御するために使用します。

弾の発射プログラム

次にSprite1(猫)のプログラムを、弾を撃てるように変更します。

f:id:digitarhythm:20161227183418p:plain

前回からの変更点は、プログラム開始時に変数「tama」を「0」にしています。

さらに次の処理が追加されています。

f:id:digitarhythm:20161227183145p:plain

この処理は「スペースバーが押された時に変数tamaが1より小さかったら(0だったら)tamaを1増やし、Ballスプライトをクローンしろ」という処理になります。この条件が満たされた時、変数tamaが「1」になるため、次からはスペースバーを押してもクローンされなくなります。

Ballスプライトのプログラム

次に「Ball」スプライトにプログラムを作ります。

f:id:digitarhythm:20161227182816p:plain

このスプライトもクローンで使用するので、プログラム開始と同時に隠します。スプライトのサイズも20%に縮少します。

そして、クローンされた時には画面に表示し、座標をSprite1(猫)と同じにします。これによって猫から弾が発射されたように見えます。

その後は無限ループでY座標を増やしていきます。これで弾が上に飛んで行くように見えます。そして、画面の一番上に行ったところで自分自身を削除し、先ほど作った変数「tama」を「1」減らします。

これでtamaが「0」になるので、また弾が発射出来るようになります。

ここで、鋭い方は気づいていると思いますが、先ほどのスペースバーを押した時の「tama < 1」の「1」が発射出来る弾の数になります。この「1」を変えてみるとBallスプライトはひとつしか作っていなくとも、複数の弾が発射出来ることが分かるでしょう。

f:id:digitarhythm:20161227185509p:plain