2012-11-10 161 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

不客氣。 –

相關問題