3个键被按下时键盘输入错误

问题描述:

当我同时按下3个键时,我的代码有问题。 当我按下3个键被按下时键盘输入错误

  • 高达+右+空格:移动和对象大火
  • 向上+左+空间:移动,但不会触发
  • 下+右+空间:移动,但不火
  • 向下+左+空间:移动,但不会触发
  • 所有其他2个组合键的罚款。

这里是我的代码:

if (newkbState.IsKeyDown(Keys.Up)) 
    player.MoveFwd(); 
else if (newkbState.IsKeyDown(Keys.Down)) 
    player.MoveBkwd(); 
else 
    player.StopMoving(); 

if (newkbState.IsKeyDown(Keys.Left)) 
    player.TurnLeft(); 
else if (newkbState.IsKeyDown(Keys.Right)) 
    player.TurnRight(); 
else 
    player.StopTurning(); 

if (newkbState.IsKeyDown(Keys.Space)) 
    player.Fire(); 
+0

使用Haedrian提供的链接,我发现我的戴尔笔记本电脑无法处理3个按键,当向左和向上按下时。我的罗技无线键盘似乎可以同时处理任何6个按键。 – 2012-03-14 19:17:50

相当基本的问题 - 但键盘支持同时有3个以上的键吗? “鬼影”作为其称为是不是闻所未闻的,在老式键盘:

https://www.microsoft.com/appliedsciences/antighostingexplained.mspx

你100%地肯定它的代码?

+0

林不知道,我的键盘是一个戴尔L100,我试过它在不同的键盘上,我得到了同样的问题。但是,它是如何起作用的UP +右+空间? – raym0nd 2012-03-14 18:57:38

+0

该文章在顶部有一个小程序,看它是否可以检测到这3台印刷机。它与键盘的构建有关 - 该链接将解释。 – Haedrian 2012-03-14 18:58:26

+0

例如,我的键盘不支持左上角空间,但您描述的其他人工作。 – Haedrian 2012-03-14 19:00:20

这可能是您的键盘问题(一些微软的键盘,例如有类似的问题);只是为了安全起见,请尝试另一个键盘。

+0

我在不同的键盘上试过它,并得到同样的问题。 – raym0nd 2012-03-14 18:58:09