0

我知道 Texture2D 可以在 Draw() 过程中旋转,但我要问的是有点不同。在绘制之前我需要旋转的 Texture2D,并将其存储到另一个 Texture2D 中以供进一步操作。类似于以下内容:

   Texture2D rotated = getRotatedTexure(originalTexture);

然而,我什至不知道从哪里开始。我是否将我的纹理转换为图像并在那里完成我的工作?任何建议将不胜感激。

造成这种情况的原因很长而且很复杂,但基本上我正在尝试构建一个旋转动画引擎(AKA:“骨骼动画”、“骨骼动画”或“剪切动画”)。

4

2 回答 2

2

试试这个:XNA 旋转纹理 2D

于 2013-01-29T05:06:38.380 回答
0

您可以做的是定义一个 RenderTarget2D 并在其中绘制旋转的纹理。例子:

RenderTarget2D rotated_texture = new RenderTarget2D(GraphicsDevice, texture_width, texture_height);

GraphicsDevice.SetRenderTarget(rotated_texture);

spriteBatch.Begin();
//Draw the texture with rotation
spriteBatch.End();

GraphicsDevice.SetRenderTarget(null); //Reset to screen drawing

如果你想在屏幕上画画,rotated texture你可以这样做:

//GraphicsDevice.SetRenderTarget(null); //Considering this done

spriteBatch.Begin();
spriteBatch.Draw(rotated_texture, vector_position, Color.White);
spriteBatch.End();
于 2013-12-27T10:06:47.887 回答