2012-11-10 6 views
0

저는 HTML5에서 게임 잼을위한 타워 데스 니스 게임을 만들고 있습니다. 나는 타워의 인공 지능을위한 서브 루틴을 가지고있다. 그러나 어떤 이유로 루프없이이 함수를 호출하면 무한 루프가 발생합니다. 최소한 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"); 
    } 
} 

디버그 MSG를이 "towerId = 1 명 전화 1"을 교류하고 "towerId은 = 1 개 통화 2"그래서 문제는 아마도에, 아니다 aiLoop(). 또한 aiTower()에 대한 코드를 검색하기 위해 정규 표현식을 사용했습니다. 이것들은 유일한 두 가지 사건입니다.

+0

우리는'.shoot'와'zamerajCiel '을위한 코드도 필요하다고 생각합니다. 그냥 advice :'console.log ('msg'는 '보고 싶다')를 사용한다. firebug를 사용하면 위대한 로깅 도구가 될 것이다. https://getfirebug.com/logging – p1100i

답변

2

var i을 제공하여 기능에 로컬 인 i을 만듭니다. 다른 곳에서도 수정할 수 있습니다.

+0

예, 고맙습니다. 다른 곳에서는 'i'를 사용하고있었습니다. 내 잘못. –

+0

당신을 진심으로 환영합니다. –

관련 문제