我正在使用javascript在Html5画布中制作一个小浏览器游戏。 我正在使用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'。所以我假设有另一个原因,这个特定的键组合不起作用,或者可能只有更好/更安全的方式来处理用户输入?
答案 0 :(得分:1)
为了消除键盘的实际问题,请查看此链接,了解键盘为何不注册多键按键的说明
http://www.microsoft.com/appliedsciences/antighostingexplained.mspx
您也可以使用该演示来测试键盘