2012-04-07 9 views
0
this.update = function() { 
    if (state == "game") { 
     if (jaws.pressed("p") && !jaws.paused) { 
     jaws.paused = true; 
     setTimeout(function() { 
      var unpause_interval_id = setInterval(function() { 
      if (jaws.pressed("p") && jaws.paused) { 
       jaws.paused = false; 
       clearInterval(unpause_interval_id); 
      } 
      }); 
     }, 5000); 
     } 

저는 작업중인 게임을 일시 중지하려는 시도입니다. 기본적으로 플레이어가 일시 중지되면 플레이어가 일시 중지하려고하는지 확인하는 기능에 대해 5 초의 제한 시간을 설정합니다.clearInterval 및 게임 일시 중지

그러나 간격을 지우는 데 성공하지 못하고 있는데 clearInterval 함수가 작동하지 않습니다. 디버깅 한 내용에서 확실합니다. 내가 뭘 잘못하고 있는지 알 겠어?

감사합니다.

+1

는 (("P")를 jaws.pressed && jaws.paused) 경우없이 간격을 취소하려고 했습니까? – user907860

답변

2

방법에 대해 :

function p_unp() 
{ 
    jaws.paused = !jaws.paused; 
} 

jaws.on_keypress("p", p_unp); 
+0

그래도 작동하지만 플레이어가 다시 일시 중지 할 수 있기 전에 플레이어가 X 초 동안 기다려야 만 할 수 있습니까? 고맙습니다. –

-3

setInterval 기능을 삭제하는 것이 좋습니다. while loop 대신 :

this.update = function() { 
    if (state == "game") { 
     if (jaws.pressed("p") && !jaws.paused) { 
     jaws.paused = true; 
     while (jaws.paused) { 
      if (jaws.pressed("p") && jaws.paused) { 
       jaws.paused = false; 
      } 
     } 
    }); 
    } 
+3

이렇게하면 브라우저 전체가 정지됩니다. 좋은 조언 ... –

+0

좋지 않습니다. 브라우저는 우리가 도용 한 스크립트를 감지하고 사용자에게 해지를 요청할 수 있습니다. 또한 이로 인해 과부하가 발생할 수 있습니다. – user907860

관련 문제