[英]How to Update C# Console App without causing a flicker
为了好玩,我正在尝试在 C# 中编写一个简单的基于控制台的游戏引擎。 现在我想做的是建立一个简单的游戏循环,“游戏”等待用户输入,更新然后呈现然后清除屏幕然后重复。
到目前为止,这是我的代码:
int x = 0;
bool quit = false;
Task.Run(async () =>
{
try // Catch any issues
{
while (!quit)
{
Console.WriteLine("render");
Console.WriteLine("Position of implicit object: {0}", x);
await Task.Delay(100);
Console.Clear();
}
}
catch (Exception e) { Console.WriteLine(e); }
});
while (!quit)
{
ConsoleKeyInfo keyInfo = Console.ReadKey(false);
ConsoleKey key = keyInfo.Key;
switch (key)
{
case ConsoleKey.D:
x++;
Console.WriteLine("A-key pressed");
break;
case ConsoleKey.A:
x--;
Console.WriteLine("D-key pressed");
break;
case ConsoleKey.Escape:
quit = true;
break;
}
}
但问题是,控制台更新时会不断闪烁。 我听说Console.SetCursorPosition(0, 0);
可能有效,但是当我尝试这样做时,似乎当用户单击屏幕时更新停止。
还有另一种方法吗? 即使它涉及改变游戏循环本身的方法。
谢谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.