从地图编辑器中解析XML文件?

时间:2012-03-19 02:33:44

标签: xml 2d d

我正在为我的新项目设置框架,我决定使用Tiled Map Editor。我已经设置了一个非常基本的地图,只是为了理解地图数据是如何以XML格式保存的,但我无法理解重要部分是什么。

我在记事本中打开了.tmx文件,只是为了环顾四周,没有什么能让我真正脱颖而出,说明地图中有哪些瓷砖类型。

<?xml version="1.0" encoding="UTF-8"?> 
<map version="1.0" orientation="orthogonal" width="25" height="19" 
  tilewidth="32" tileheight="32"> 
  <tileset firstgid="1" name="Test" tilewidth="32" tileheight="32">
   <image source="../TileSet/TestTileSet.png" width="320" height="320"/> 
  </tileset>
  <layer name="Tile Layer 1" width="25" height="19"> 
 <data encoding="base64" Compression="zlib"> 
 eJzjYmBgYKQh5qGx+aN4FI/iUTyKRzElmJfG5nMDMQCDZQIG 
</data> </layer> </map>

这是记事本文本的复制粘贴。我可以看到方向,宽度,高度,瓷砖集源,宽度/高度等信息。

从这里我看不到我在哪里得到瓷砖信息所以我可以渲染。

这究竟是什么“eJzjYmBgYKQh5qGx + aN4FI / iUTyKRzElmJfG5nMDMQCDZQIG”?

作为参考,我正在使用D编程语言。

理解这一点的任何帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:4)

这是精灵数据,使用deflate算法压缩,然后使用Base64进行编码。

$ echo 'eJzjYmBgYKQh5qGx+aN4FI/iUTyKRzElmJfG5nMDMQCDZQIG' | base64 -d | perl -MCompress::Zlib -e 'undef $/; print uncompress(<>)' | xxd -c 19
0000000: 0a00 0000 0100 0000 0100 0000 0100 0000 0100 00  ...................
0000013: 0001 0000 0001 0000 0001 0000 0001 0000 0001 00  ...................
0000026: 0000 0100 0000 0100 0000 0100 0000 0100 0000 01  ...................
...