前回の 15秒シューティングを作ろう のつづきです。
15秒間の制限を付けたのは、ゲームとしての体裁を整えるためです。
このゲームはチュートリアルなので、シンプルなプログラムにしています。敵は一種類のみ、しかもまっすぐ飛んでくるだけです。難易度の低いゲームだと思います。
でも制限時間があれば少し話が違ってきます。ハイスコアを目指すという課題ができます。そしてまた高得点を目指すほどリスクも上がります。
短い時間なら集中しやすいというメリットもあります。
怪獣を出現させよう のつづき
怪獣の絵を選びます。
ギャラリーから怪獣の絵を選びます。
同じような絵がありますが、これはアニメーション用です。
左向きの絵を選びましょう。
速度を変更します。左へ移動させるためマイナス値になります。
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にする を使いましょう。
最初だけ の中に配置します。
次回の完結編に続きます。