2009-12-01 71 views
1

我正在加载包含多个sprite纹理的Texture2D。当我加载最初的Texture存储到单独的Texture2D对象中时,我想将各个纹理拉出来,但似乎无法找到任何可以让我这样做的方法。 SpriteBatch.Draw我相信只能从开始,结束块内调用吗?将xna中的纹理复制到另一个纹理中

谢谢。

+0

你说得对最后一部分。必须在开始和结束之间调用Draw。 – mauris 2009-12-01 03:58:38

回答

1

我正在加载一个Texture2D,其中包含 多个sprite纹理。当我将初始纹理加载到 存储到单独的Texture2D对象时,我希望 将单个纹理拉出 。

你不必这样做,也不应该。访问单个纹理比多个纹理更快。此外,纹理存储在GPU纹理内存中。分裂它是没有意义的。

您应该专注于编写可以访问精灵表单中各个精灵的代码。我建议你看看基于精灵的游戏是如何工作的。

这里是一个伟大的教程视频系列应该帮助你:tile engine videos

+0

我碰到过这个相同的信息。我已经重构了我的代码,使用源矩形代替每个存储Texture2D的Sprite。 – Casey 2009-12-02 13:39:51