XNA Keyboard.GetState()不读取数字/字符键,而是读取其他键

时间:2016-04-30 02:58:58

标签: c# input keyboard xna

我的游戏突然停止响应键输入。起初我以为这是我引入的一些逻辑错误,但我最终注释掉了我的所有自定义代码,并留下了一个空的XNA Game类,除了我添加的代码,看看会发生什么:< / p>

var state = Keyboard.GetState(); foreach(var key in state.GetPressedKeys()) { Console.WriteLine(key); }

以下键注册输入就好了:

  • 逃逸
  • 标签
  • 左Alt
  • RightAlt
  • 大写锁定
  • LeftShift
  • RightShift
  • LeftControl
  • RightControl
  • LeftWindows
  • 输入
  • 返回(退格)
  • 主页

然而,XNA没有接收任何其他键。其中包括:

  • 字符键(a,s,d,f)
  • 数字键(键盘顶部的以太键和小键盘
  • F键(F1 - F12)
  • 操作员键(/,*, - ,+)

我知道这可能是一个很长的镜头,但是有其他人经历过这个,或者有人知道可能导致它的原因吗?

我尝试重新启动Visual Studio,重建项目,然后重新启动计算机。自XNA 1以来,我一直在开发XNA游戏,这是我第一次遇到这种情况。

编辑:我插入了一个USB键盘,看看它是否与硬件有关,但这也没有解决问题。

1 个答案:

答案 0 :(得分:2)

这似乎是由Synergy软件(http://synergy-project.org/)引起的。我最近安装了Synergy 1.7.6,这是我自安装XNA游戏以来第一次运行它。我结束了Synergy的后台任务,我的游戏再次开始阅读输入。