2017-07-06 48 views
0

對於帆布遊戲我是在製作的過程中存在的兩倍,window.alert用帆布碰撞

碰撞條件我現在有意味着一個window.alert將在瀏覽器窗口中顯示。但是,由於碰撞的性質(太快?),這個window.alert出現兩次,要求在兩次警報中總共按兩次「OK」。

我已經嘗試使用setTimeout/setInterval延遲警報功能,但是這不會導致結果變化。這一定是因爲碰撞時精靈重疊了多少?

下面是我的碰撞情況,我的窗口提醒我希望在它出現後只顯示一次(所以遊戲可以重置)。我怎麼能改變這一點,以防止每次都有多個window.alert

  if (x < object.x && x + width > object.x && 
     y < object.y + 60 && height + y > object.y + 60) { 

     setTimeout(function() { 
     window.alert("You lose"); 
     location.reload(); 
     }, 100); 
    } 
+0

確認「你輸了」有什麼意義?爲什麼不提醒()它? –

+0

雖然我可以擁有它,對吧?我的意思是,我不應該,但我可以嗎? 無論如何,謝謝你指出這一點! –

回答

5

使用setTimeout而不是setInterval

setTimeout只發生一次,setInterval是無限的。

+0

我通過測試使用了超時和間隔。但我最初確實有setTimeout,但沒有運氣。我會盡快更新我的代碼,以反映您的(更合適的)建議!謝謝你快速的回覆 :) –