有没有比使用Console.Clear()制作控制台游戏更好的方法?
问题描述:
我在搞游戏循环,并打算创建一些游戏作为练习。有没有比使用Console.Clear()制作控制台游戏更好的方法?
目前,我有一个稳定的游戏循环了在游戏中尽可能快地更新和渲染更新X次(25目前)
的rendinging方法基本上是一个平局+ Console.Clear( ),并且在非常高的更新下,当Console.Clear()命中时,显示变得非常紧张,因为它没有完成绘制。
有没有更好的方法来做这样的事情?
我可以将任何数据写入控制台,然后将其替换为其他一些数据吗?
答
假设你从左上又在每一个循环写一个完整的画面,你可以简单地更换清除()有:
Console.SetCursorPosition(0, 0);
并覆盖前一个画面。
答
既然你是在C#中,无论如何,你可能想看看XNA Framework。
我猜你的问题来自Console.Clear()
没有被用于这种用途的优化,为XNA采用了类似的方法(Clear()
上调用GraphicsDevice
)。
如果你不想尝试使用XNA,那么绘制一个矩形(纯黑或灰色或其他)可能会更快,而不是调用Clear()
来“屏蔽”屏幕然后绘制它。
+0
我从控制台开始了解游戏循环的基本内部工作原理。但是,在数据而不是Console.Clear()上绘制空白页面可能会更快。 – 2009-08-15 21:13:26
啊,这可能是我所经历的关键。谢谢 :) – 2009-08-15 21:19:18