2011-09-15 63 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代码。您可能会遇到或不会遇到浏览器兼容性问题。