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

时间:2009-08-15 21:01:01

标签: c# console game-loop

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

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

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

有更好的办法做这样的事吗?

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

3 个答案:

答案 0 :(得分:4)

假设您在每个循环中再次从topleft写一个完整的屏幕,您只需将Clear()替换为:

 Console.SetCursorPosition(0, 0);

并覆盖上一个屏幕。

答案 1 :(得分:3)

既然你在C#中,你可能想要查看XNA Framework

我猜你的问题来自于Console.Clear()未针对此类用途进行优化,因为XNA使用了类似的方法(Clear()上调用GraphicsDevice)。

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

答案 2 :(得分:1)

您可能想查看ConsoleLibrary

我没有使用它,但是从文章/演示中看来它可以让你在控制台上做一堆整洁的东西。