[シューティング]敵を出現させよう


あーあー,院試まであと3日...
受験生って大変ねぇ・・・

とか言いつつも,勉強サボリがてらゲームを作ったりしてます.
ところで,ここんとこHP更新してませんでしたなぁ・・・

なんか,あんまり見る人いないページなんでね.
そりゃー,こんなへっぽこプログラマの作ったゲームなんて誰も興味ないだろうし・・
・・・・・・(グチ省略)・・・・・・

まぁ,いいや.ゲーム作ったときに思いついたこととか,使ったネタ(?)とかメモしとこう.

さて,今回のネタは「敵出現!for シューティング!!」

イチバン最初に思いついたのは,恐ろしく効率の悪い方法でした.
(ちなみに名前はテキトーです)


「敵出現二次元配列確保法」

これは,敵の出現情報を二次元配列で持っておいて,マスをチェックしていって敵が出るかどうか判定する方法.
まぁ,地形と対応させる場合は使いやすいかも知れないけど,敵が出ないマスの方が多くなっちゃって無駄な領域のほうが多くなった.
あとはまぁ,いろいろ問題あったので却下.


「絶対時間敵出現法」

おおまかな手順は以下のとおり.
1.ステージ開始からの時間を計測.
2.ステージ時間と敵出現テーブルの時間の項目と比較.
3.ステージ時間の方が大きかったらその敵を出現させる.

敵出現テーブル(構造体配列)に含まれる情報はこんな感じで入ってます.
出現までの時間 出現X座標 出現Y座標 敵のタイプ
100 50 -32 0
150 100 -32 5
150 200 -32 2

こんな風に「出現時間」を昇順に並べて入ってます.
で,検索開始位置を記憶させて置けばそんなに検索時間もかからないはず.


「相対時間敵出現法」

前の方法だと,敵と敵の間に他の敵を追加して書こうとしたとき,以降の敵を全部書きなおさなくてはならなかったり, 前の出現時間より早い時間の敵を後に書いてしまったり(昇順じゃない)というような面倒な目に会ってしまったので, 出現時間の情報には「前の敵との出現時間の差」という意味を持たせました.
これだと,敵の追加も楽々だし,負数を書かない限り「データは昇順」にという規則に反しないのでお手軽です.

ちなみに「雪(仮)」ではこの方法を使いました.



< Back to Diary.