XNA Keyboard.GetState()。GetPressedKeys()返回" Kanji"作为默认值

时间:2014-11-02 05:01:43

标签: c# input xna keyboard

我正在编写一个简单的实用程序类,它将XNA的KeyboardState.Keys枚举转换为相应的char值,因此可以在我的游戏中输入文本。

作为测试,我使用以下代码确保Keyboard.GetState().GetPressedKeys()正确返回Keys.None或空Key[]

foreach (var item in Keyboard.GetState().GetPressedKeys())
    Console.WriteLine(item);

不幸的是,这不是发生的事情。我的键盘的默认值似乎是Keys.Kanji,原因有些奇怪。

我在这台电脑上安装了默认的Microsoft日语键盘/ IME。但是,我尝试在安装和不安装的情况下运行它,这似乎根本不会影响问题。

(旁注: Terraria 也是用XNA编写的,它的键绑定也会遇到同样的问题。)


修改

在使用我的PC以及两个朋友进行测试后,在Windows 7上安装了日语IME时,XNA会错误地(?)报告Keys.Kanji始终处于按下状态。这不是什么大问题,因为KeyboardState对象之间的状态没有变化,所以它是可行的。怪异!

一位朋友没有使用日语IME的Windows 7,另一位朋友使用带有IME的Windows 8,我是唯一一个似乎遇到问题的人。

0 个答案:

没有答案