在我的游戏中,我需要绘制一个由正方形组成的圆圈,其大小与游戏图块的大小相同(圆圈由正方形组成)。我可以每帧以锯齿形圆形的形式绘制单色方形纹理,但这会消耗大量资源。我想做的是在内存中的某个地方只绘制一次,然后保存以绘制每一帧。
我可以简单地自己画出圆形并将其用作准备好的纹理,但我的圆形并不总是相同的。它在整个游戏中都有不同的大小(实际上一半的时间不是一个圆圈,但我有说明在哪里绘制的算法),所以它必须以编程方式绘制。
首先,您将圆圈渲染为自定义RenderTarget2D
. 您可以像这样设置自定义渲染目标:
GraphicsDevice.SetRenderTarget(renderTarget);
将您的圆圈渲染到渲染目标后,将其转换为Texture2D
这样的:
texture = (Texture2D)renderTarget;
阅读更多:http ://www.riemers.net/eng/Tutorials/XNA/Csharp/Series3/Render_to_texture.php