Darkside(リンクエラー修正しました)

2013年11月14日(木) 21:23

案の定問題だらけ

 ひとまず自動プレイの lua を組み立てる。

・ミサイルだけ狙い、爆撃機は無視
 爆撃機の移動方向と移動速度の取得方法が不明
・迎撃座標の計算もアバウト
 迎撃ミサイルの速度が概算でしかない

 これで動かすと、どう見ても左右の基地が逆だ。画面の左に近いミサイルに、右の基地から迎撃している。右側のミサイルには左の基地から。lua
スクリプトも一部間違っていたが、根本的に左右のボタンを逆に押していた。
 また、迎撃座標もいい加減過ぎる。実は、ミサイル移動速度にも疑義がある。
 迎撃ミサイルに関しては、1フレームに3回移動している。これに対しミサイルは、1フレームに1回移動と思いきや、実際はそれより遥かに遅い。
 1面と2面は4フレームに1回移動、3面と4面は2フレームに1回移動、それ以降は1フレームに1回移動と仮定して
lua スクリプトを修正。更に、10フレームほど先の位置に狙い越しを増やした。すると爆風が広がった状態でミサイルを迎えることになり、少々の誤差は問題にならなくなる。

 爆風に巻き込まれる別のミサイルにもお構いなしに迎撃ミサイルを撃ち込むなど、ロクに考えていないアルゴリズムのせいで結構いい加減なことになる。だが、改善点が多過ぎて、それどころではない。
 爆撃機に関しては右に動くか左に動くかの2つに1つなので、画面の左寄りなら右に動くと仮定し、画面の右寄りなら左に動くと仮定。だが、それで迎撃しても狙いが外れる。1フレームあたり1ドットより移動速度が遅い。そこで、出現から32フレームまで待ち、32フレーム間の移動ドット数から速度を計算。それに基づいて迎撃するようにした。
 これで、移動方向を探る必要もなくなる。もちろんこれでは出現即座の撃墜ができない。しかし、爆撃機に関しては出現するなり撃墜するのが果たしてベストか?という疑問がある。試しにガンガン撃墜してみると、すぐ次の爆撃機が出現する。

 これはいずれ調査を要するが、仮に無限出現だとすると、嬉々として撃墜するのは迎撃ミサイルの浪費である。
 かと言って放置すれば、ミサイルを落とされる。よって、適当に泳がせてから撃ち落すのがベストだろうと考えた。
 ただし、面ごとに攻撃キャラ数が決まっていて、爆撃機を撃墜することで残る攻撃キャラの数がそれだけ減るのであれば、ガンガン撃墜する方が正解となる。なぜなら、爆撃機は非常に撃墜が容易だからだ。爆撃機以外の攻撃キャラの数は、減るのか減らないのか。減らないとして、爆撃機から落とされたミサイルはその数に含まれるのか?迎撃ミサイルの数がキツいこのゲームにおいては、調査を避けて通れない。

 でも、今はまだ他に優先事項が多い。

 やはり迎撃座標の計算が不正確過ぎる。
 算出された迎撃座標より10フレーム分ほど先に撃たないと、撃墜漏れを起こす。これはどうあっても、迎撃ミサイルの正確な速度を調べねばならない。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4