シューティングゲーム
最初はインベーダーゲームから。
インベーダゲームを侮ってはいけません。
インベーダゲームには、シューティングゲームのすべての基礎が詰まっているといっても過言ではありません。
順番としては、
インベーダー→ギャラクシアン→ゼビウス→・・・
ですね。
インベーダゲームには以下の制限があります。
- 一画面固定(スクロールしない)
- 弾が1つしか打てない。
- 自機、敵の移動は左右のみ。
- 敵の攻撃は下に弾を打つのみ。
これらの制限があることで、作るのが簡単なわけです。
- 当たり判定
自機は「敵」と「敵の弾」に倒されます。
敵は「自機の弾」に倒されます。
逆に、敵と敵の弾は「自機」を倒します。
自機の弾は「敵」を倒します。
当たり前のことですが、この関係を押さえておきましょう。
とすると、
自機のやられ判定は、
自機から敵と敵の弾を検索する方法と、その逆があることとなります。
好みの問題ですが、少ない方から多い方を検索した方が分かりやすいかもしれません。
この場合は自機は一つしかないので、自機から敵と敵の弾を検索します。
- データ構造
配列が使える言語を想定するならば、データ構造は次のようになります。
-
- 自機
- 自機の弾
- 敵(配列)
- 敵の弾(配列)
できれば、C言語でいう構造体を使って、
-
- 座標(x,y)
- サイズ(縦, 横)
- 表示フラグ
- 移動量
とまとめたほうがいいです。
HSPだと構造体が使えないので、例えば敵なら座標データ、サイズデータ、などそれぞれを別の配列で持たなければならないので、データの管理が大変かも知れません。
(つづく)