【问题标题】:Parsing an XML file from Map Editor Tiled?从地图编辑器平铺解析 XML 文件?
【发布时间】:2012-04-03 14:11:37
【问题描述】:

我正在为我的新项目设置框架,并决定使用平铺地图编辑器。我已经设置了一个非常基本的地图,只是为了了解地图数据如何以 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>

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

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

这个“eJzjYmBgYKQh5qGx+aN4FI/iUTyKRzElmJfG5nMDMQCDZQIG”到底是什么?

作为参考,我使用的是 D 编程语言。

任何有助于理解这一点的帮助将不胜感激。

【问题讨论】:

    标签: xml 2d d


    【解决方案1】:

    是精灵数据,用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  ...................
    ...
    

    【讨论】:

    • 好的,目前有什么用 D 语言编写的可以帮助我解压和解码的吗?
    • 是的,标准库中有std.base64std.zlib
    猜你喜欢
    • 2014-09-05
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    相关资源
    最近更新 更多