インベーダーゲームを作って、ゲームプログラミングを学びましょう。
このプログラムではミサイルの発射、当たり判定、クローン生成などを習得できます。
シューティングゲームの基礎になる要素がつまっています、いろいろなゲームに応用できます。
なお、今回のインベーダーゲームは学習用のため、敵の動きなどは簡易版としています。
変数の作成
次の変数を作成してください。変数はすべてのスプライト用にしてください。
変数の意味は各キャラクターのプログラムで説明します。
「スコア」と「のこり」にだけチェックを入れておきます。ゲーム中はずっと表示するようにします。
スプライト
ゲームに登場するキャラクターを作画していきます。作画が苦手な人は、初めから用意されているキャラクターを使ってもかまいません。
また、筆者の公開作品をリミックスして、使用するのもいいでしょう。
ただし、スプライト名とコスチューム名はプログラムの中で使用しますので、この通りにしてください。
インベーダーと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秒待ってから消します。
ゲームのメッセージ
ゲームのメッセージはゲームプレイ中は隠しておきます。
「ゲームオーバー」「ゲームクリア」を受けとったときに表示します。
色を少しずつ変えることで、演出を加えます。
ゲームプレイ
プログラムが完成したら実行してみましょう。
ミサイルをよけながら敵を倒していくシューティングゲームの基本形とも言えます。
ゲーム中の数字を変えて難易度を調整してみましょう。
また、キャラクターを追加したり、演出を追加したり改造してみましょう。
コメント