2012-11-10 53 views
0

我正在制作HTML5游戏卡片的塔台游戏。我有一个塔的AI的子程序。但是,由于某种原因,没有循环的这个函数调用会以无限循环结束。只有至少有两个塔时才会发生。为什么最终会导致Javascript中的无限循环?

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级的呼叫1” 和 “towerId = 1次调用2”,所以这个问题可能不是在aiLoop()。此外,我用一个正则表达式来搜索我的代码aiTower()。这是唯一的两次发生。

+0

我想我们也需要'.shoot'和'zamerajCiel'的代码。只是一个建议:使用'console.log('msg你想看'''),如果你使用萤火虫它将是一个伟大的记录工具。 https://getfirebug.com/logging – p1100i

回答

2

通过提供var i使i为本地功能。您很可能会在其他地方修改它。

+0

是的,谢谢,在别处使用'i'。我的错。 –

+0

不客气。 –

相关问题