我正在尝试使用 Xna.Framwork.Input 检查键盘上是否按下了某个键,但我使用的方法似乎不起作用。
我的代码(仅重要部分):
using System.Threading;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework;
private static void GetInput() {
for (int i = 0; i < 1000; i++) {
Update();
if (IsKeyPressed(Keys.W)) {
Console.WriteLine("W pressed");
}
if (IsKeyPressed(Keys.S)) {
Console.WriteLine("S pressed");
}
Thread.Sleep(10);
}
}
public static KeyboardState CurrentKeyboardState { get; private set; }
public static void Update() {
CurrentKeyboardState = Keyboard.GetState();
}
public static bool IsKeyPressed(Keys key) {
return CurrentKeyboardState.IsKeyDown(key);
}
无论我按什么,“IsKeyPressed”都不会返回 true。
这个方法在一个新线程中执行,但是在主线程中运行它并没有改变任何东西。
我正在使用 Visual Studio 2012 Ultimate Update 1、.NET 4.5、Win 7 x64、XNA Game Studio 4.0
我的代码不正确还是其他地方有问题?