我正在制作一个游戏网页,我需要知道一种捕捉键盘输入的方法,即向上,向下,向左,并将其输入我的位置变量,但我不想使用文本框,在我的HTML代码中输入。我已经在用一个元素画出我的世界了。当游戏在标签上打开时,是否有任何方式可以捕获所有键盘输入和各种浏览器操作键,而无需用户点击屏幕上的特定位置。我对HTML的经验非常有限,只需要一个回答,因为我在python中构建游戏的方式是将它自己构建成HTML。
我也在使用定时循环,并且需要能够在定时循环内捕获onkeypress事件。
我应该使用哪个元素?元素的哪些属性?
答案 0 :(得分:1)
为了在循环内捕获您的印刷机,您必须将当前存放的密钥存储在某处,并使用document.onkeydown
和document.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代码。您可能会或可能不会遇到浏览器兼容性问题。