今回つくるゲーム
難易度
今回はスクラッチで3Dアクロバット飛行ゲームを作っていきます。3D空間の中を戦闘機を操縦しながらレーザーの網目をくぐっていきます。3Dではありますが意外と簡単なコードで書けてしまいますので是非チャレンジしてみてください。
まずは実際にゲームをプレイしてみてください。
はじめに
まず初めに以下のプロジェクトをリミックスしてください。こちらには今回のゲームを作るスプライトが全て用意されています(完全にゼロから作りたい人はyoutube動画をご覧ください)
宇宙空間を作る
まずは宇宙空間を作っていきます。宇宙空間はまず背景に”Neon Tunnel”というスクラッチにもともとある背景をおき、さらに同じ背景をコスチュームとしたスプライトを用意します。今回は”宇宙空間”という名前のスプライトで用意しています。この宇宙空間がどんどんクローンとして出現しで大きさが大きくなっていくことで奥行き感のある宇宙空間ができるようになります。
宇宙空間のスプライトに以下のコードを書きましょう。
”近づく速さ”という変数がポイントです。3D空間では遠くにあるものはゆっくり、近くにあるものは早く動きます。ですのでこちらに向かってくるにつれ、近づく速さがどんどん早くならないと少し気持ち悪いゲームになってしまいます。
では、実際にを押してみましょう。以下のように宇宙空間ができれば正解です。
カウントダウンを入れる
ではレーザーや戦闘機のコードを書く前に、ゲーム管理のスプライトでゲーム全体の流れを書いていきましょう。旗が押されて急にゲームが始まるのではなく、宇宙空間が出来上がるまで待ってからスタートさせるようにします。カウントダウンは1つ作っておけば他のゲームにも流用できるので便利です。
レーザー網を出現させる
では次にレーザー網を出現させます。レーザーのスプライトに以下のようにコードを書きます。宇宙空間のコードと似ていますが、コスチュームをランダムにしたり、幽霊の効果を使って遠くにあるものは薄く、手前にあるものは濃く表示されるようにしています。またレーザー網が現れるのは1秒おきとしています。
では、実際にを押して動かしてみましょう。以下のようにレーザー網が回転しながら出現すれば成功です。
戦闘機を操縦する
では次に戦闘機を操縦できるようにしましょう。
今回のアクロバットに操縦するのは簡単なコードで書けてしまいます。またこのタイミングで”スコア”と”HP”という変数を作成します。ゲーム中常にスコアが増えていき、レーザー網に当たるとHPが減り、HPが0になるとゲーム終了です。以下のように戦闘機のスプライトにコードを書いてください。
回転方向を自由にして、マウスに向けて2歩動かすだけで、このようなアクロバティックな動きが作れるのです
では、実際に戦闘機を操縦してみましょう。以下のように動けば成功です。
レーザー網に当たるとHPを減らす
次にレーザー網に戦闘機が当たった時にHPを減らすようにしましょう。レーザーのスプライトに移動して以下のようにコードを追加します。
では、実際にプレイしてみましょう。以下のように、戦闘機に当たるとレーザーが赤くなれば成功です。
宝石を加える
最後に、ゲームをより面白くするために、宇宙空間に宝石を出現させましょう。戦闘機を宝石に当ててゲットするとスコアが上がるようにします。宝石のスプライトに以下のコードを書いてください。レーザー網とは微妙にタイミングをずらすために、クローンを作る間隔を1.3秒としています。
また、以下のように、宇宙空間と戦闘機のコードにも”ゲーム終了”を受け取ったときのコードを書くのを忘れないようにしましょう。
では、ゲームをプレイしてみましょう。宝石をゲットしてスコアが上がれば成功です。
全てのコード
これで全てのプログラミングが終了です。全てのコードは以下からも確認できます。