突然间,我的游戏停止响应按键输入。起初我以为这是我引入的一些逻辑错误,但我最终注释掉了所有自定义代码,并留下了一个空的 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/