我有一個jQuery遊戲,如果你按下鍵盤上的右鍵,它會加載一個特定的圖像,如果你按下鍵盤上的左鍵,它會加載另一個圖像。我的問題是,所有這些都在不斷重複的時間間隔內發生。一旦程序發現我的右鍵不再按下,它將自動繪製第二張圖像。我想要它執行以下操作: - 如果按向右箭頭,它將繪製Image1並保持該狀態,直到按左鍵 -if按左箭頭,我想要繪製Image2並保留該狀態,直到我按下右鍵如何定義要發生的事情並保持該狀態?
如果我在一個while循環中這樣做,我的網頁將崩潰,因爲它將停留在那個while循環中,並且下面的代碼將不會執行。
這是可行的,但只要我釋放正確的鍵,rightDown將是假的,當程序再次找到if語句時,它將繪製我的Image2。 (間隔爲真快)
if(rightDown)drawImage1();
else drawImage2();
如果我用這個
if(rightDown)drawImage1();
else if(leftDown) drawImage2();
和我不t按左右鍵無圖像將被繪製。
rightDown和leftDown
function onKeyDown(evt) {
if (evt.keyCode == 39) rightDown = true;
else if (evt.keyCode == 37) leftDown = true;
else if (evt.keyCode == 38) upKeyDown = true;
else if(evt.keyCode == 40) downKeyDown = true;
}
,當他們不點擊
function onKeyUp(evt) {
if (evt.keyCode == 39) rightDown = false;
else if (evt.keyCode == 37) leftDown = false;
else if (evt.keyCode == 38) upKeyDown = false;
else if (evt.keyCode == 40) downKeyDown = false;
}
的$(document).keydown(onkeydown事件)的一部分; $(document).keyup(onKeyUp);
向我們展示更多您的代碼...相關部分。你如何獲得'rightDown'? – 2014-12-01 21:44:32
我更新了代碼 – Bogdan 2014-12-01 21:52:59
側邊欄 - 查看https://developer.mozilla.org/en-US/docs/Web/API/window.requestAnimationFrame以緩解您的性能問題。 – 2014-12-01 21:57:38