2011-09-15 64 views
0

我正在一個遊戲網頁上工作,我需要知道的方法來捕獲鍵盤輸入,即上,下,左右,並將其饋入我的位置變量,但我不想在我的HTML代碼中使用文本框進行輸入。我已經在使用一個元素來繪製我的世界。有沒有什麼辦法可以在選項卡上打開遊戲的時候,所有的鍵盤輸入和各種瀏覽器操作鍵都可以被捕獲,而不必讓用戶點擊屏幕上的特定位置。我對HTML的使用經驗非常有限,只需要一個答案就可以了,因爲我在python中構建遊戲的方式是將其構建到HTML中。需要隱藏/美觀的鍵盤輸入爲javascript遊戲

我也使用了定時循環,並且需要能夠在定時循環內捕獲onkeypress事件。

我應該使用哪個元素?元素的哪些屬性?

+3

您可以將事件處理程序綁定到'window'或'document'。 –

+1

我沒有使用過這個:https://github.com/marquete/kibo,但它看起來很穩固 – Joe

+0

正如JS的正常情況,答案的開頭可能是「使用jQuery」http://api.jquery.com/KEYDOWN / – dtanders

回答

1

爲了在迴路中專門捕捉您的印刷機,您必須將當前保存的按鍵存儲在某處,並使用document.onkeydowndocument.onkeyup來更改它們。

var heldKeys = []; 

document.onkeydown = function(ev) { 
    heldKeys.push(ev.keyCode); 
} 

document.onkeyup = function(ev) { 
    var i = heldKeys.indexOf(ev.keyCode); 
    if (i != -1) { 
     heldKeys.splice(i, 1); 
    } 
} 

現在在你的循環中,你檢查heldKeys的內容。您可以循環播放並按每個鍵操作。

請記住,keyCodes不會完全對應「a」「b」等,它們將是ascii代碼。您可能會遇到或不會遇到瀏覽器兼容性問題。