前回の 15秒シューティングを作ろう のつづきです。
15秒間という制限を設けたのは、ゲームとしての体裁を整えるためです。
このゲームはチュートリアル用なので、プログラムはシンプルにしています。
敵は1種類のみで、動きもまっすぐ飛んでくるだけ。難易度は低めです。
ですが、制限時間を設けることで状況が少し変わってきます。
「ハイスコアを目指す」という明確な目標ができ、
高得点を狙うほどにリスクも増していきます。
また、短い時間であれば集中しやすいというメリットもあります。
怪獣を出現させよう のつづき
怪獣の絵を選びましょう。
ギャラリーから怪獣の絵を選びます。
同じような絵がありますが、これはアニメーション用です。
左向きの絵を選びましょう。
速度を変更します。左へ移動させるためマイナス値になります。
vx -100、 vy 0 に変更します。
変数名を変更しましょう。
プログラムを見やすくする大切な作業です。
projectile2 の所をクリックしてメニューを出し、変数の名前を変更を選びます。
monster に変更します。
変数名が monster になっているか確認しましょう。
怪獣の出現位置をランダムに変更します。
スプライト の中の mySprite の x を 0 にする をドラッグします。
ゲームが更新された時 500 ミリ秒毎 の中に配置します。
次に、乱数を発生させるブロックを用意しましょう。
計算 の0から10までのランダムな数字を下図のようにはめ込みます。
monster、y、5、115 に変更します。
画面の高さは 120 です。
画面の内側にしっかり表示したいため 5 から 115 に設定しました。
これで怪獣の出現処理は完了です。
弾と怪獣に当たり判定を入れよう
飛行機から発射する弾と怪獣に当たり判定を入れます。
当たり判定用のブロックを用意します。
ゲームが更新された時 500 ミリ秒毎 の下に配置します。
対象を Projectile(弾のこと)相手を Enemy に変更します。
弾に当たった敵を消します。
スプライト の mySpriteを破棄する をドラッグします。
当たり判定の中に配置します。
このブロックが見つからないときは、英語表記のブロックを探しましょう。
mySprite を otherSprite に変更します。
外に出た mySprite はゴミ箱に捨てます。
さあ、これで弾が怪獣に当たれば怪獣は消えるはずです。
試してみましょう。
うーん、消えませんね。
どうやら怪獣が敵 Enemy として認識されていないようです。
怪獣のタイプを変更します。
スプライト の mySprite を Player タイプにする をドラッグします。
ゲームが更新された時 500 ミリ秒毎 の中に配置します。
変数名を monster に、タイプを Enemy に設定します。
確認しましょう。
これで弾に当たった怪獣が消えるようになりました。
怪獣を消すだけではさみしいので演出を入れます。
オプションを開いて「 200 ミリ秒のエフェクト 崩壊 」に変更します。
ついでに怪獣消滅のスコアも設定します。
情報 の スコアを 1 だけ増やすを入れましょう。
プレイヤーと怪獣に当たり判定を入れよう
次は、プレイヤーと怪獣の当たり判定を用意します。
先ほど作った当たり判定をコピーして、もう一つ当たり判定を作ります。
当たり判定のブロックを右クリックして、メニューから 複製する を左クリックします。
(当たり判定の中のブロックをクリックしないように注意しましょう)
複製されます。これを下図のように重ならないように並べましょう。
ちなみに半透明なのは、同じ設定の当たり判定があるためです。
Projectile を Player に変更します。
これでプレイヤーと怪獣の当たり判定に変わります。
それからスコアのブロックは消しましょう。
これでプレイヤーと怪獣の当たり判定ができました。
プレイヤーが怪獣に当たったときの演出
怪獣に当たったときの演出を追加しましょう。
今回は、「プレイヤーがダメージを受けたときに画面が揺れる」演出を採用します。
ゲームではよく見かける定番の演出です。
シーン の カメラを4ピクセルで500ミリ秒揺らす をドラッグします。
プレイヤーと怪獣の当たり判定の中に入れます。
怪獣に当たってみてください。少し揺れているのが分かると思います。
残念なことに揺れるのはスプライトのみで背景は揺れません。
(背景も揺らしたいときは、背景もスプライトで表示するといいです)
プレイヤーの残機を減らします。
情報 の ライフを -1 だけ増やす を入れましょう。
これでライフとスコアが入りました。
なお、ライフは怪獣に当たるまで表示されません。
初めから表示されるようにします。
情報 の ライフを 3 にする を使いましょう。
最初だけ の中に配置します。
次回の完結編に続きます。