我正在做一个乒乓球游戏。我让一切正常,但用户移动桨。我正在使用一个 while (true) 循环,其中调用了所有方法。如何使用 WASD 移动桨?我希望程序在等待用户输入时继续运行。我尝试使用 Console.ReadKey() 但它冻结了程序
user2322960
问问题
1002 次
1 回答
1
虽然我建议使用游戏库(虽然我找不到任何专门针对终端的,但Curses Sharp可能很有用),但这可以手动完成..
核心问题是Console.ReadKey
阻塞(或“冻结”)直到有密钥可供读取;使用Console.KeyAvailable查看密钥当前是否可用:
while (true) {
// Clear out all keys in the queue; there may be multiple (hence "while")
while (Console.KeyAvailable) {
// Won't block because there is a key available to read. Handle it.
var key = Console.ReadKey(true);
HandleKey(key);
}
// Do other processing ..
ProcessGameTick();
// .. and be sure to Yield/Sleep to prevent 100% CPU usage.
Thread.Sleep(0);
}
于 2013-06-23T04:43:13.627 回答