我正在测试xna游戏作为学习练习,我有一个关于使用2D纹理的小问题。基本上游戏是从文本地图文件中获取的不同“图块”的网格。我基本上只是在初始化级别时解析文件并创建不同tile类型的矩阵。水平基本上是一块墙砖和钉子。基本上,有很多墙砖和多个钉砖,然后是很多空砖。但是,有四种类型的墙砖和钉状纹理可以覆盖不同的方向。
我的问题是为每个瓷砖加载纹理的最佳方法是什么?我为每个瓷砖加载单个纹理吗?即当我创建一个瓷砖时,传递一个texture2d,我可以绘制并同时加载纹理。这似乎是一个好方法,但是我必须单独加载每个tile纹理,这看起来很浪费。
我能想到的另一个选择是在tile结构中使用静态纹理,然后将此纹理简单地加载为具有不同墙和尖峰的tile图集。这样我只加载一个纹理,然后在绘制时我只是将一个矩形移动到精灵中相应图块的区域。
从性能角度来看,或者如果有替代方法,我不确定哪种方式最优?
先谢谢
答案 0 :(得分:4)
关于内容管道的精彩之处在于,当你做
时Content.Load<Texture2D>("sometexture");
每次都不会加载Texture2D。内容管道足够智能,可以加载一次,并且每次都为该纹理发回相同的Texture2D。如果你制作了静态结构,那实际上会更糟。