有没有比使用Console.Clear()更好的方法来制作控制台游戏?

4

我正在研究游戏循环,并打算创建一些练习用的游戏。

目前,我已经建立了一个稳定的游戏循环,游戏会尽可能快地更新,而渲染则每秒更新x次(目前是25次)。

渲染方法基本上是一个绘图+Console.Clear(),但在非常高的更新频率下,由于绘图还没有完成,当Console.Clear()执行时,显示就会变得非常抖动。

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

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

3个回答

5
假设您在每个循环中都从左上角编写全屏,您可以简单地将Clear()替换为:
 Console.SetCursorPosition(0, 0);

覆盖之前的屏幕。

啊,这可能是我正在经历的关键。谢谢 :) - Ólafur Waage

3
由于您已经使用C#,您可能想了解XNA框架

我猜测您的问题是由于Console.Clear()不适用于此类用法,因为XNA使用类似的方法(在GraphicsDevice上调用Clear())。
如果您不想尝试使用XNA,则绘制一个矩形(实心黑色或灰色或其他颜色)可能比调用Clear()更快地'清空'屏幕并在其上绘制。

我从控制台开始了解游戏循环的基本内部工作原理。但是,与其使用Console.Clear()清除数据,画一个空白界面可能更快一些。 - Ólafur Waage

1

你可能想要查看ConsoleLibrary

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接