0

我正在开发一个游戏网页,我需要知道一种捕获键盘输入的方法,即上、下、左、右并将其输入到我的位置变量中,但我不想在我的用于输入的 HTML 代码。我已经在使用一个元素来绘制我的世界。有没有什么办法可以让游戏在选项卡上打开时,除了各种浏览器操作键之外的所有键盘输入都可以被捕获,而无需用户点击屏幕上的特定位置。我在 HTML 方面的经验非常有限,并且只需要一个锥体的答案,因为我正在用 python 构建游戏,它自己构建到 HTML 中。

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

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

4

1 回答 1

1

为了在循环中专门捕获您的按下,您必须将当前持有的键存储在某处,并使用document.onkeydownanddocument.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 代码。您可能会也可能不会遇到浏览器兼容性问题。

于 2011-09-15T16:10:16.237 回答