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

标签 c# input keyboard xna

突然间,我的游戏停止响应按键输入。起初我以为这是我引入的一些逻辑错误,但我最终注释掉了所有自定义代码,并留下了一个空的 XNA Game 类,除了我添加的用于查看可能发生的情况的代码:

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

以下键可以很好地注册输入:

  • 逃脱
  • 标签
  • 左Alt
  • 右Alt
  • 大写锁定
  • 左移
  • 右移
  • 左控制
  • 右键
  • 左窗口
  • 输入
  • 后退(退格键)
  • 首页

但是,XNA 没有拾取任何其他 key 。其中包括:

  • 字符键(a、s、d、f)
  • 数字键(键盘顶部或小键盘上的数字键
  • F 键(F1 - F12)
  • 运算符键(/、*、-、+)

我知道这可能不太可能,但有其他人经历过这种情况,或者有人知道可能是什么原因造成的吗?

我尝试重新启动 Visual Studio、重建项目并重新启动计算机。我从 XNA 1 开始就一直在开发 XNA 游戏,这是我第一次经历这种情况。

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

最佳答案

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

关于c# - XNA Keyboard.GetState() 不读取数字/字符键,而是读取其他键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36950202/

相关文章:

c - 如何知道 C 语言中是否存在文件?

java - 如何使用scanner hasNext()循环一行键盘文本并验证用户输入的整数和字符串

c# - 私有(private)静态只读字段大写

html - 如何更改 Chrome 输入日期占位符的文本颜色?

c++ - 我需要一种流式传输字符串的替代方法。 C++

iphone - 如何拉起键盘 - iphone 应用程序

Android:当键盘打开并覆盖网格时,gridview 的子项为空

从字符串转换日期和/或时间时 C# 转换失败

c# - 如何在 webbrowser 控件中显示特定的 web 元素

c# - 您可以在 ApiMember 属性和 xmldoc 摘要注释中使用相同的描述吗?