4

我正在玩弄游戏循环,并将创建一些游戏作为练习。

目前我有一个稳定的游戏循环,游戏会尽快更新,渲染每秒更新 x 次(目前为 25 次)

渲染方法基本上是 draw + Console.Clear() 并且在非常高的更新时显示变得非常抖动,因为当 Console.Clear() 命中时它还没有完成绘制。

有没有更好的方法来做这样的事情?

我可以将任何数据写入控制台,然后用其他数据替换它吗?

4

3 回答 3

5

假设您在每个循环中再次从左上角写入全屏,您可以简单地将 Clear() 替换为:

 Console.SetCursorPosition(0, 0);

并覆盖前一个屏幕。

于 2009-08-15T21:18:16.053 回答
3

由于您无论如何都在使用 C#,因此您可能需要查看XNA Framework

我猜你的问题是由于Console.Clear()没有针对这种用途进行优化,因为 XNA 使用了类似的方法(Clear()在 a上调​​用GraphicsDevice)。

如果您不想尝试使用 XNA,那么绘制一个矩形(纯黑色或灰色或其他)可能比调用Clear()“空白”屏幕然后在其上绘制更快。

于 2009-08-15T21:09:41.983 回答
1

您可能想查看ConsoleLibrary

我没有使用它,但从文章/演示来看,它似乎可以让你在控制台上做很多整洁的事情。

于 2009-08-15T21:13:30.057 回答