【自由研究】インベーダーゲームを作ってみよう

ゲーム

インベーダーゲームを作って、ゲームプログラミングを学びましょう。
このプログラムではミサイルの発射、当たり判定、クローン生成などを習得できます。
シューティングゲームの基礎になる要素がつまっています、いろいろなゲームに応用できます。
なお、今回のインベーダーゲームは学習用のため、敵の動きなどは簡易版としています。

変数の作成

次の変数を作成してください。変数はすべてのスプライト用にしてください。
変数の意味は各キャラクターのプログラムで説明します。
「スコア」と「のこり」にだけチェックを入れておきます。ゲーム中はずっと表示するようにします。

スプライト

ゲームに登場するキャラクターを作画していきます。作画が苦手な人は、初めから用意されているキャラクターを使ってもかまいません。
また、筆者の公開作品をリミックスして、使用するのもいいでしょう。
ただし、スプライト名とコスチューム名はプログラムの中で使用しますので、この通りにしてください。

インベーダーとUFOを作ります。スプライト名はインベーダー、UFOとしてください。
コスチュームに「インベーダー」「UFO」と「爆発」を作ってください。

ゲームのメッセージを作成します。文字の大きさやデザインは調整してください。
ただし、コスチューム名はプログラム中で使用しますので変えないでください。

背景

背景はあらかじめ用意されているStratsを選択します。

レーザー砲(自機)のプログラム

ユーザーはレーザー砲を動かしてインベーダーを倒していきます。
使用するキーは左右の矢印とスペースキーのみです。
まず、ゲームがスタートしたらスコアとヒットは0にします、このことを変数の初期化といいます。
左右の矢印キーを押すと、動くようにします。
完成したら、動かしてみましょう。ちゃんと動きましたか?
プログラムは一度に作り上げるのではなく、小さいブロック単位で確認しながら作ります。
もしプログラムに誤りがあったとき、今作ったブロックに問題があることがすぐわかります。

スペースキーを押すとレーザーを発射させます。
ここではレーザーのクローンを作るだけで、発射はレーザーにプログラムします。
レーザーの発射間隔を1秒空けることでゲームの難易度調整します。

敵のミサイルに当たったときのプログラムです。
ミサイルに当たると自機の残りを減らしていき、残りが0になったらゲームオーバーです。
また、降りてきたインベーダーに触れてもゲームオーバーになります。
インベーダーの数は30体なので30ヒットした時はクリアとします。

レーザーのプログラム

レーザーは本体とクローンに分かれています。プログラムは同じエリアに作成します。
レーザーの本体はゲーム中には登場せず、クローンを発射します。

クローンが作成されるとxy座標をレーザー砲と同じ場所にします。
その後「表示」することでレーザー砲から発射されたように見えます。
「インベーダー」との当たり判定は、
キャラクターが同時に消える場合のテクニックです。
インベーダーに触れてすぐにレーザーを消してしまうと、インベーダー側のプログラムでレーザーに触れたことが分かりません。
そこで、インベーダに触れたあとも少し(0.1秒)待つことにします。
こうすることで、インベーダー側のプログラムでもレーザーに触れたことに気づくことができます。

インベーダーのプログラム

インベーダーも本体とクローンが分かれています。
本体は登場せず、クローンをたくさん作ります。
「3回繰り返す」の中に「10回繰り返す」を入れます、こうすることで30体のインベーダーをクローンすることができます。
x,y座標をずらしながらクローンすることで、インベーダーが重ならないようにします。
また、1段変わるごとに色を変えてインベーダーの見た目を変更します。

クローンされた時のプログラムです。
コスチュームにインベーダーと爆発があるので、インベーダーにして表示します。
右方向に10回動いたら1段下げ、今度は左方向に10回動いて1段下げます。

インベーダーがミサイルを発射するプログラムです。
インベーダーは10秒から20秒の間隔でランダムにミサイルを発射するようにします。
ミサイルの発射位置を指定するために、変数「ミサイルの座標」にインベーダーのx,y座標をセットします。

最後にレーザーがインベーダーに当たったときのプログラムです。
コスチュームを「爆発」に変更して爆発を演出します。
レーザーとの同時当たり判定のために0.1秒待ってからこのクローンを消します。

ミサイルのプログラム

ミサイルも本体は隠しておき、クローンをゲームに登場させます。

クローンされた時のプログラムです。
インベーダーから変数「ミサイルの座標」で指定された位置に移動してから表示します。
ミサイルの速さを0.1秒で調整しています。この数字を変えればゲームの難易度を調整することができます。

UFOのプログラム

UFOも本体は隠しておき、5秒間隔でクローンを登場させます。

クローンされると左上に出現して、右方向へ動くようにします。

レーザーとの当たり判定です。
レーザーに当たったら爆発するようにします。
同時に当たり判定を行うテクニックとして0.1秒待ってから消します。

ゲームのメッセージ

ゲームのメッセージはゲームプレイ中は隠しておきます。
「ゲームオーバー」「ゲームクリア」を受けとったときに表示します。
色を少しずつ変えることで、演出を加えます。

ゲームプレイ

プログラムが完成したら実行してみましょう。
ミサイルをよけながら敵を倒していくシューティングゲームの基本形とも言えます。
ゲーム中の数字を変えて難易度を調整してみましょう。
また、キャラクターを追加したり、演出を追加したり改造してみましょう。

コメント