シューティングゲーム

最初はインベーダーゲームから。
インベーダゲームを侮ってはいけません。
インベーダゲームには、シューティングゲームのすべての基礎が詰まっているといっても過言ではありません。
順番としては、
インベーダー→ギャラクシアンゼビウス→・・・
ですね。

インベーダゲームには以下の制限があります。

  • 一画面固定(スクロールしない)
  • 弾が1つしか打てない。
  • 自機、敵の移動は左右のみ。
  • 敵の攻撃は下に弾を打つのみ。

これらの制限があることで、作るのが簡単なわけです。

  • 当たり判定

自機は「敵」と「敵の弾」に倒されます。
敵は「自機の弾」に倒されます。
逆に、敵と敵の弾は「自機」を倒します。
自機の弾は「敵」を倒します。
当たり前のことですが、この関係を押さえておきましょう。

とすると、
自機のやられ判定は、
自機から敵と敵の弾を検索する方法と、その逆があることとなります。
好みの問題ですが、少ない方から多い方を検索した方が分かりやすいかもしれません。
この場合は自機は一つしかないので、自機から敵と敵の弾を検索します。

  • データ構造

配列が使える言語を想定するならば、データ構造は次のようになります。

    • 自機
    • 自機の弾
    • 敵(配列)
    • 敵の弾(配列)

できれば、C言語でいう構造体を使って、

    • 座標(x,y)
    • サイズ(縦, 横)
    • 表示フラグ
    • 移動量

とまとめたほうがいいです。
HSPだと構造体が使えないので、例えば敵なら座標データ、サイズデータ、などそれぞれを別の配列で持たなければならないので、データの管理が大変かも知れません。
(つづく)