2012-02-01 106 views
1

我正在开发一个小游戏,并尝试从上,下,左,右,空间的箭头接收键输入。Javascript bug?按下向上和向左箭头键时没有空格键事件

在keyDown上,我将一些布尔值设置为true,并将keyDown设置为false。在主循环中,我检查了这些布尔值,所以角色可以在8个方向中的1个方向上移动并同时进行拍摄。

一切正常:东北+空间,东南+空间,西南+空间 但西北空间不起作用。空间吧的事件不会被解雇。

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; 
      } 
     } 
+0

什么是空间变量的值去?如果你正在测试event.keyCode空间应该是0,根据这个页面asquare.net/javascript/tests/KeyCode.html – 2012-02-01 09:17:53

+0

它是32,我不认为keyCode会在任何情况下改变。它适用于每个箭头键组合预计向上左 – 2012-02-01 09:26:34

+0

任何消息呢?我偶然发现了同样的问题... – olsn 2013-05-16 20:00:57

回答

1

我做了一些测试和我有相同的行为在所有的浏览器,以及在Flash和AIR应用程序,所以对于我来说,我的键盘很有可能引起的(型号:樱桃JK-0100DE)。

我的解决方法是使用另一个关键,而不是空间 - 可能与X或Y

相关问题