也许我正在尝试以一种非设计的方式使用 XNA,但我非常希望能够绘制我自己的图元并将它们保存为位图、纹理 2D 或任何可以容纳几条二维线的东西为了我。我的目标是编写一个程序化创建纹理的游戏,而不是仅仅从内容管理器加载。
如果有帮助的话,我已经创建了一个存储多边形的 Shape 类,我可能可以告诉 spriteBatch 画出每条线,但我试图通过在某处存储常用形状来进行优化。
您可以为您的任务使用RenderTarget。像这样的东西:
// var to store your drawing
Texture2D newShape;
// drawing will be on this target
RenderTarget2D rt = new RenderTarget2D(GraphicsDevice, width, height);
SpriteBatch sb = new SpriteBatch(GraphicsDevice);
// set to render all to render target
GraphicsDevice.SetRenderTarget(rt);
GraphicsDevice.Clear(Color.Transparent);
sb.Begin();
// Draw what you want here.
sb.End()
// Return to drawing on "main" buffer
GraphicsDevice.SetRenderTarget(null);
// Save the texture you just drawn
newShape = rt;