嘿,我已经四处寻找了一段时间,但我仍然找不到这个问题的直接答案。我有一个 XNA 游戏,其中部分 UI 显示一个图标,该图标会经常更改(多久不相关)。我决定使用一个简单的 spritesheet 制作器来输出 spritesheet 以及一个简单的 XML 文件,其中包含每个单独图标的位置。
我想要做的是从 XML 文件中读取适当图标的精灵表位置和图标大小到Rectangle
. 然后我可以将其用作绘图位的源矩形。
但是,我还没有遇到一个简单的解释,说明如何在不编写自己的内容管道的情况下将 XML 文件加载到 XNA 4.0 项目中(如果可能的话,我想避免这样做),并且一旦加载,如何(通常)有效地提取Rectangle
变量中的数据。
XML 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with TexturePacker http://texturepacker.com-->
<!-- $TexturePacker:SmartUpdate:748fc56befb00c22540f953093f731a7$ -->
<!--Format:
n => name of the sprite
x => sprite x pos in texture
y => sprite y pos in texture
w => sprite width (may be trimmed)
h => sprite height (may be trimmed)
oX => sprite's x-corner offset (only available if trimmed)
oY => sprite's y-corner offset (only available if trimmed)
oW => sprite's original width (only available if trimmed)
oH => sprite's original height (only available if trimmed)
r => 'y' only set if sprite is rotated
-->
<TextureAtlas imagePath="Loadout_Icons.png" width="185" height="86">
<sprite n="Charge_Down.png" x="0" y="0" w="37" h="43"/>
<sprite n="Charge_Up.png" x="37" y="0" w="37" h="43"/>
<sprite n="Damage_Down.png" x="74" y="0" w="37" h="43"/>
<sprite n="Damage_Up.png" x="111" y="0" w="37" h="43"/>
<sprite n="FireRate_Down.png" x="148" y="0" w="37" h="43"/>
<sprite n="FireRate_Up.png" x="0" y="43" w="37" h="43"/>
<sprite n="Health_Down.png" x="37" y="43" w="37" h="43"/>
<sprite n="Health_Up.png" x="74" y="43" w="37" h="43"/>
<sprite n="Speed_Down.png" x="111" y="43" w="37" h="43"/>
<sprite n="Speed_Up.png" x="148" y="43" w="37" h="43"/>
</TextureAtlas>
我也不确定我是否会因为不制作自己的 XML 文件而自取其辱,那会更容易吗?
我已经阅读了 msdn 提供的大部分内容,但无济于事,但任何指向相关页面或问题的链接将不胜感激。提前致谢。