【发布时间】:2012-02-01 09:13:54
【问题描述】:
我正在开发一个小游戏,我尝试接收来自上、下、左、右和空格键的键输入。
在 keyDown 上,我将一些布尔值设置为 true,而在 keyDown 上再次设置为 false。在主循环中,我检查了这些布尔值,因此角色可以在 8 个方向中的 1 个方向上移动并同时射击。
一切正常:North-East + Space、South-East + Space、South-West + Space 但西北+空间不起作用。空格键的事件不会被触发。
function onKeyDown(evt){
switch(evt.keyCode){
case up:
pressedUp=true;
break;
case right:
pressedRight = true;
break;
case down:
pressedDown = true;
break;
case left:
pressedLeft = true;
break;
case space:
spacePressed=true;
break;
}
updateCamera();
}
function onKeyUp(evt){
switch(evt.keyCode){
case up:
pressedUp=false;
break;
case right:
pressedRight = false;
break;
case down:
pressedDown = false;
break;
case left:
pressedLeft = false;
break;
case space:
spacePressed = false;
break;
}
}
【问题讨论】:
-
空间变量的值是多少?如果您在 event.keyCode 上测试,则根据此页面 asquare.net/javascript/tests/KeyCode.html 空间应为 0
-
它是 32,我认为 keyCode 在任何情况下都不会改变。它适用于每个箭头键组合,除了左上角
-
有这方面的消息吗?我偶然发现了同样的问题......
-
我的假设是这与操作系统或硬件有关。所以我想不容易解决
-
我也有同样的问题...
标签: javascript keyboard keydown keyevent