我知道我必须绘制draw()中的所有东西,并且它不断循环。XNA初学者关于绘制方法的问题
但我不想一次又一次地绘制纹理,例如我想创建一个纹理,绘制纹理(而不是spritebatch)。我只会在draw()中绘制该纹理。
可能吗? 我能用什么?
我知道我必须绘制draw()中的所有东西,并且它不断循环。XNA初学者关于绘制方法的问题
但我不想一次又一次地绘制纹理,例如我想创建一个纹理,绘制纹理(而不是spritebatch)。我只会在draw()中绘制该纹理。
可能吗? 我能用什么?
不再绘制它是一个性能优化。你只应该这样做,如果你真的需要到。
如果您确实需要这样做,请创建一个渲染目标,将您的场景绘制到渲染目标,然后将渲染目标绘制到每个画面(使用SpriteBatch
使这变得很容易)而不是场景。
看看this question关于使用渲染目标缓存绘图。
你必须反复绘制,总之,如果你不会显示。一个聪明人曾经在Windows开发书中写过一篇文章:
不要问为什么你的windows上的文本必须不断绘制,请问为什么它从来没有用过DOS/Unix命令行。
如果有东西放置在您正在绘制的区域上,并且您不重绘它,它只是不会在那里。你需要继续绘制它以便在屏幕上持续显示。它做得非常快,不会伤害任何东西(特别是如果你想在背景方面)