1

也许我正在尝试以一种非设计的方式使用 XNA,但我非常希望能够绘制我自己的图元并将它们保存为位图、纹理 2D 或任何可以容纳几条二维线的东西为了我。我的目标是编写一个程序化创建纹理的游戏,而不是仅仅从内容管理器加载。

如果有帮助的话,我已经创建了一个存储多边形的 Shape 类,我可能可以告诉 spriteBatch 画出每条线,但我试图通过在某处存储常用形状来进行优化。

4

1 回答 1

3

您可以为您的任务使用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;
于 2012-12-11T05:33:32.687 回答