我知道我必須繪製draw()中的所有東西,並且它不斷循環。XNA初學者關於繪製方法的問題
但我不想一次又一次地繪製紋理,例如我想創建一個紋理,繪製紋理(而不是spritebatch)。我只會在draw()中繪製該紋理。
可能嗎? 我能用什麼?
我知道我必須繪製draw()中的所有東西,並且它不斷循環。XNA初學者關於繪製方法的問題
但我不想一次又一次地繪製紋理,例如我想創建一個紋理,繪製紋理(而不是spritebatch)。我只會在draw()中繪製該紋理。
可能嗎? 我能用什麼?
不再繪製它是一個性能優化。你只應該這樣做,如果你真的需要到。
如果您確實需要這樣做,請創建一個渲染目標,將您的場景繪製到渲染目標,然後將渲染目標繪製到每個畫面(使用SpriteBatch
使這變得很容易)而不是場景。
看看this question關於使用渲染目標緩存繪圖。
你必須反覆繪製,總之,如果你不會顯示。一個聰明人曾經在Windows開發書中寫過一篇文章:
不要問爲什麼你的windows上的文本必須不斷繪製,請問爲什麼它從來沒有用過DOS/Unix命令行。
如果有東西放置在您正在繪製的區域上,並且您不重繪它,它只是不會在那裏。你需要繼續繪製它以便在屏幕上持續顯示。它做得非常快,不會傷害任何東西(特別是如果你想在背景方面)