我看过所有关于它的帖子,但似乎没有一个对我有用。我想在游戏的背景中不断检查按键。
这就是我试图让它发挥作用,但它不会。
namespace Base
{
class MainClass
{
public static int X = 0;
public static int Y = 0;
public static void Main(string[] args)
{
while (true)
{
KeyboardState CurrentKeyboardState = Keyboard.GetState();
if (CurrentKeyboardState.IsKeyDown(Keys.Left))
{
MainClass.X += 1;
}
Console.WriteLine(X + ", " + Y);
}
}
}
}
按左键不会提高X值,这意味着没有响应。 我在某处读到了你无法在Main或线程中不断检查,但我应该在哪里查看呢?
答案 0 :(得分:0)
我认为如果您是C#的新手,那么您可能也是XNA的新手。 XNA具有内置的游戏循环功能,每秒调用其Update和Draw方法60次。大多数游戏逻辑应该写入Update方法或从Update方法调用。这意味着您在Update方法中编写的代码或从Update调用的代码运行60次/秒。通常,您在那里调用Keyboard.GetState()。这意味着您正在以60 /秒的速度轮询键盘以获取任何输入。
通过一些初学者教程可能会对您有所帮助:
答案 1 :(得分:0)
您应该在Update上调用它,因为Update每秒运行60次。
答案 2 :(得分:0)
您的问题是键盘输入的命名空间不能在控制台应用程序中运行。它专为C#XNA Framework而设计,用于制作游戏。我建议切换到XNA进行游戏编程,因为控制台应用程序并不是为他们设计的。