HTML5でゲームジャム用のタワーデスゲームを作っています。塔の AI のサブルーチンがあります。しかし、この関数をループなしで呼び出すと、なぜか無限ループになってしまいます。タワーが 2 つ以上ある場合にのみ発生します。
function aiTower(id){
if(id === 1)alert("towerId = 1 call 1");
var l = zamerajCiel(id);
if (l !== null) towers[id].shoot(l.x,l.y);
if(id === 1)alert("towerId = 1 call 2");
};
それを呼び出すループ:
function aiLoop(){
for(i=0;i<enemies.length;i++){
aiMon(i);
}
for(i=0;i<towers.length;i++){
aiTower(i);
if(i === 1)alert("towerId = 1 call 3");
}
}
デバッグ メッセージは「towerId = 1 call 1」と「towerId = 1 call 2」を交互に繰り返すため、問題はおそらく aiLoop() にはありません。また、正規表現を使用して aiTower() のコードを検索しました。発生したのはこれらの 2 つだけでした。