2.ゲームの仕様
能書きはこれぐらいにして、さっそく実戦(正しくは実践)に入ってみることにしよう。題材にするゲームは、定番中の定番「シューティングゲーム」です。しかし、それが面白いかどうかってことは気にしちゃいけない(笑)

ネタが決まったところで、どんなゲームにするか簡単に決めておきます。そういえば、ゲームと言えばタイトルあった方がいいですね。とりあえずSPACE FLY 2004(意味不明)という名前にしておきます。

まずは自機と敵がいなくては始まりません。自機と敵の戦いです。戦いの内容は、シューティングというぐらいなので自機はビーム砲で攻撃し、敵を打ち落とすのが仕事。でも、敵も一カ所でじっとしているのでは芸がないし1匹だけでは面白くないです。そんなわけで、複数の敵が画面上を動き回り、たまに何らかの攻撃を仕掛けてくることにしましょう。

そして、画面上の全ての敵を撃ち落としたら次のステージへ。敵の攻撃を3回受けるとゲームオーバー。もし、一定の得点に達したら、自機が1機増えることにします。

これで大まかな仕様は決定!細かい部分の仕様は以下に書いてあるので見てください。
SPACE FLY 2004の基本仕様
全体イメージとルールです。図で見た方が分かりやすいと思うので、全体のイメージはココを参照してください。

 ◆自機について
表示位置・数 画面下方に1機。
移動 左右に移動可能。ただし、左右の末端まで。
使用するキー 矢印キー(←と→)を使い、左右に動かす。Vボタンでビーム砲発射。
攻撃 ビーム砲。Vキーで発射。
破損 敵にぶつかったとき、敵の糞にぶつかったときに破損。
自機の持ち数 3機。全て失うとゲームオーバー。(ただし、1UPあり)

 ◆ビーム砲について(Vボタン押下時)
初期位置と移動 発射位置は自機の先端辺り。上に向かって垂直に移動。
発射タイミング Vボタン押下時。
連射 不可。何らかの形で消滅するまで、Vキーを押しても発射できない。
消滅 画面の最上段に達したとき、敵に当たったとき、敵の糞に当たったとき。

 ◆敵について
移動パターンと攻撃 飛行移動、攻撃飛行の2種類。さらに、攻撃飛行中は糞を落とし自機を攻撃。
待機飛行 敵は常に左へ移動。左端に達した敵は、右端へ現れて同じく左へ移動。
攻撃飛行 待機飛行中の敵は、気まぐれ(0.5%ぐらい)で攻撃飛行へ移る。ただし、一度に攻撃飛行する敵は1匹。敵が最後の1匹になったときは、攻撃飛行を続ける。
糞攻撃 攻撃飛行中の敵は、飛行中に気まぐれで糞をする。タイミングはランダムに決定。一度に画面上に表示できる糞は1個だけ。垂直またはナナメに落下。
消滅 自機のビーム砲に当たった敵や糞は消滅。その際、得点が入る。
その他 ステージクリア毎に敵の縦位置を下の方へ。ただし、下がるのはステージ14まで。それ以降は下がらない。

 ◆敵の糞について
初期位置と移動 発射位置は敵の尻(?)の辺りから。下に向かってナナメや垂直に落下。
落下速度 敵の攻撃飛行よりちょい速。
消滅 画面の最下段に達したとき、自機に当たったとき、ビーム砲に当たったとき。

 ◆得点
待機移動中 10点
攻撃飛行中 20点
敵の糞 50点

 ◆その他のルール、仕様など
1UP 500点で自機を1機追加。
ステージ終了 敵を全て倒したら、次のステージへ。
ゲームオーバー 自機を全て失ったとき。
デモ画面 自機を表示せず、敵のみが動き回る。デモ画面で、Vボタン押下でゲームスタート。
作成するプロシジャの一覧
SPACE FLY 2004で作成するプロシジャと各プロシジャの概要です。参考までにどうぞ。なお、プロシジャの関連図はココです。

 ◆作成するプロシジャの一覧
prcGame 全体の主制御処理。
prcAllInit アプリケーション全体の初期設定を行う。
prcGameMain ゲームの主制御処理。
prcGameInit ステージ毎の初期設定を行う。
prcMyShipMove 自機の操作や描画を行う。
prcMyShipDown 自機の爆発。
prcBeamMove ビーム砲の処理を行う。
fncBeamHitCheck ビーム砲と敵の衝突を判定する。
prcMyShipHitCheck 自機と敵の衝突を判定する。
prcEnemyMove 敵の制御を行う。
prcDemoMode デモ画面処理。
prcScreenInit ゲーム画面の初期化を行う。
prcDispScore 現在の得点やハイスコアなどの表示を行う。
prcMyShipLeft 自機の残数表示を行う。
prcFunMove 敵の糞移動処理。(練習問題)
Copyright(C) 1999-2006 結城圭介。 All rights reserved