我在搞遊戲循環,並打算創建一些遊戲作爲練習。有沒有比使用Console.Clear()製作控制檯遊戲更好的方法?
目前,我有一個穩定的遊戲循環了在遊戲中儘可能快地更新和渲染更新X次(25目前)
的rendinging方法基本上是一個平局+ Console.Clear( ),並且在非常高的更新下,當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()
來「屏蔽」屏幕然後繪製它。
我從控制檯開始瞭解遊戲循環的基本內部工作原理。但是,在數據而不是Console.Clear()上繪製空白頁面可能會更快。 – 2009-08-15 21:13:26
您migth想退房ConsoleLibrary
我沒有使用它,但是從文章/演示現在看來,這將允許你做一堆東西,整齊的控制檯上。
啊,這可能是我所經歷的關鍵。謝謝 :) – 2009-08-15 21:19:18