|
3 |
GameFSMの改良 (24) |
最近は推論能力が高いため、もっぱらClaude Fable 5を使用しています。さてCaludeに以下の仕様を実装してもらいました。
「自弾がインベーダに命中すると、爆発マークの表示期間(ALIEN_EXPL_TMAX tick)のあいだ隊列全体の移動を停止する。停止中も自機・自弾・敵弾・UFO・サウンドの処理は継続し、爆発マークの消去とともに、停止した個体から隊列の移動を再開する。」
これはオリジナル動作を観察して発見した仕様です。理由は不明ながら、爆発マーク表示中も隊列を動かすと、インベーダの動きにより爆発マークが欠ける場合があり、その干渉を防止するためと考えられます。
for (noy <= 0; noy < `InvRows; noy <= noy + 1) seq
// 爆発凍結中はカーソルを進めない(増分が no-op になる)
for (nox <= 0; nox < `InvCols;
nox <= (alien_timer == 0) ? nox + 1 : nox) seq
if (inv_s[nox][noy] || alien_timer != 0) seq
if (alien_timer == 0)
updateAliens();
else
eraseAlienExplosion();
updatePlayer();
...(以下、元のまま)...
endseq // if inv
endseq // for nox
endseq // for noy