需要隐形/美观的键盘输入为JavaScript游戏

时间:2011-09-15 15:55:50

标签: javascript html input keyboard onkeypress

我正在制作一个游戏网页,我需要知道一种捕捉键盘输入的方法,即向上,向下,向左,并将其输入我的位置变量,但我不想使用文本框,在我的HTML代码中输入。我已经在用一个元素画出我的世界了。当游戏在标签上打开时,是否有任何方式可以捕获所有键盘输入和各种浏览器操作键,而无需用户点击屏幕上的特定位置。我对HTML的经验非常有限,只需要一个回答,因为我在python中构建游戏的方式是将它自己构建成HTML。

我也在使用定时循环,并且需要能够在定时循环内捕获onkeypress事件。

我应该使用哪个元素?元素的哪些属性?

1 个答案:

答案 0 :(得分: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代码。您可能会或可能不会遇到浏览器兼容性问题。