我正在搞乱游戏循环,并将创建一些游戏作为练习。
目前我有一个稳定的游戏循环,游戏尽可能快地更新,渲染每秒更新x次(当前25次)
rendinging方法基本上是一个draw + Console.Clear(),并且在非常高的更新时,显示变得非常紧张,因为当Console.Clear()命中时它没有完成绘制。
有更好的办法做这样的事吗?
我可以将任何数据写入控制台,然后将其替换为其他数据吗?
答案 0 :(得分:4)
假设您在每个循环中再次从topleft写一个完整的屏幕,您只需将Clear()替换为:
Console.SetCursorPosition(0, 0);
并覆盖上一个屏幕。
答案 1 :(得分:3)
既然你在C#中,你可能想要查看XNA Framework。
我猜你的问题来自于Console.Clear()
未针对此类用途进行优化,因为XNA使用了类似的方法(Clear()
上调用GraphicsDevice
)。
如果您不想尝试使用XNA,那么绘制一个矩形(纯黑色或灰色或其他)可能会更快,而不是将Clear()
调用“空白”出屏幕然后绘制在它上面。
答案 2 :(得分:1)
您可能想查看ConsoleLibrary
我没有使用它,但是从文章/演示中看来它可以让你在控制台上做一堆整洁的东西。