从图像中动态创建XNA精灵

时间:2011-01-25 12:56:47

标签: c# sprite xna-4.0

我有一张图片,让我们说一个由用户上传的.png。 此图像具有固定大小,例如100x100。

我想用这张图片创建4个精灵。

一个从(0,0)到(50,50)

另一个从(50,0)到(100,50)

从(0,50)到(50,100)的第三个

最后一次从(50,50)到(100,100)

我怎样才能使用我喜欢的C#?

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:5)

要从PNG文件创建纹理,请使用Texture2D.FromStream()方法(MSDN)。

要绘制纹理的不同部分,请将sourceRectangle参数用于接受它的SpriteBatch.Draw重载(MSDN)。

以下是一些示例代码:

// Presumably in Update or LoadContent:
using(FileStream stream = File.OpenRead("uploaded.png"))
{
    myTexture = Texture2D.FromStream(GraphicsDevice, stream);
}

// In Draw:
spriteBatch.Begin();
spriteBatch.Draw(myTexture, new Vector2(111), new Rectangle( 0,  0, 50, 50), Color.White);
spriteBatch.Draw(myTexture, new Vector2(222), new Rectangle( 0, 50, 50, 50), Color.White);
spriteBatch.Draw(myTexture, new Vector2(333), new Rectangle(50,  0, 50, 50), Color.White);
spriteBatch.Draw(myTexture, new Vector2(444), new Rectangle(50, 50, 50, 50), Color.White);
spriteBatch.End();