我正在使用 javascript 在 Html5 Canvas 中制作一个小型浏览器游戏。 我使用 onKeyUp 和 onKeyDown 事件来获取键盘输入:
function onKeyDown(evt) {
if (evt.keyCode == 32) {
spaceKey = true;
}
if (evt.keyCode == 38) {
arrowUpKey = true;
}
if (evt.keyCode == 37) {
arrowLeftKey = true;
}
if (evt.keyCode == 39) {
arrowRightKey = true;
}
}
function onKeyUp(evt) {
if (evt.keyCode == 32) {
spaceKey = false;
}
if (evt.keyCode == 38) {
arrowUpKey = false;
}
if (evt.keyCode == 37) {
arrowLeftKey = false;
}
if (evt.keyCode == 39) {
arrowRightKey = false;
}
}
我需要箭头键(左、右、上)和空格键。通常会检测到输入,但有一种特定情况不起作用:如果按下向左和向上的箭头(玩家同时跳跃和向左移动),则由于某种奇怪的原因,不会检测到任何空格键输入。
在我的代码中,除了显示的事件之外,我从未为变量“spaceKey”分配任何新值。所以我假设还有另一个原因导致这种特定的按键组合不起作用,或者也许有更好/更安全的方法来处理用户输入?
最佳答案
为了消除键盘的实际问题,请检查此链接,了解为什么键盘不记录某些多按键操作
http://www.microsoft.com/appliedsciences/antighostingexplained.mspx
您也可以使用演示来测试键盘
关于javascript - onKeyDown 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494138/