我正在开发一个游戏,它将有spritesheets,如下所示:

我知道当您做spriteBatch.Draw(...)时,您可以画出图像的某一部分,但是对于我正在做的事情,我需要每个帧都有一个单独的Texture2D对象。
我做过谷歌搜索,但我只能找到过时的代码:/
UPDATE MJP 这里发布的代码几乎就是我所需要的.但是,在XNA4.0中没有RenderTarget2D.GetTexture()函数。
发布于 2011-11-30 19:36:35
哇好吧..。更多的谷歌搜索显示:
Texture2D tex = (Texture2D)renderTarget;只是简单的演员阵容:)
这是我的最后代码:
public static Texture2D Crop(Texture2D image, Rectangle source)
{
var graphics = image.GraphicsDevice;
var ret = new RenderTarget2D(graphics, source.Width, source.Height);
var sb = new SpriteBatch(graphics);
graphics.SetRenderTarget(ret); // draw to image
graphics.Clear(new Color(0, 0, 0, 0));
sb.Begin();
sb.Draw(image, Vector2.Zero, source, Color.White);
sb.End();
graphics.SetRenderTarget(null); // set back to main window
return (Texture2D)ret;
}https://stackoverflow.com/questions/8331494
复制相似问题