在控制台中扫描按键而不暂停
本文关键字:暂停 控制台 扫描 | 更新日期: 2023-09-27 18:20:40
我有这个问题。我有while循环用于在控制台中绘制文本,我想让它具有交互性。我有两个if语句,其中包含实际键的条件。所以,如果我按下"W"键,它会有所作用,但不会起作用。我有两个项目,engine.dll和testApp进行测试。这是代码:
while (true)
{
game g = new game();
g.Draw(cHP, mHP, name,posX,posY,blip);
Thread.Sleep(50);
Console.CursorVisible = false;
ConsoleKeyInfo cki = new ConsoleKeyInfo();
//if (Console.KeyAvailable) { Console.CursorVisible = true; break; }
if (cki.KeyChar == 'w') MoveY(1); // Here it is
if (cki.KeyChar == 's') MoveY(-1); // and here
}
不确定您在最终版本中想要什么,但修复现有代码的方法是这个
Console.CursorVisible = false;
while(true)
{
game g = new game();
g.Draw(cHP, mHP, name,posX,posY,blip);
Thread.Sleep(50); //might not be required depending
//on what you want to do
var cki = Console.ReadKey(true);
if (cki.KeyChar == 'w') MoveY(1);// Here it is
if (cki.KeyChar == 's') MoveY(-1); // and here
}