TMX瓦片地图无法加载问题

来源:互联网 发布:双色球算法必中六红 编辑:程序博客网 时间:2024/05/16 14:50

cocos2d-x编程会用到瓦片地图,今天用Tiled生成了一幅TMX瓦片地图,可以在加载代码时出现程序崩溃问题。

网上有人说要改一下设置,修改如下:

  编辑>参数>通用>另存为数据层>Base64(zlib压缩)

改成:

 编辑>参数>通用>另存为数据层>Base64(gzip压缩)

试了试还是不行。

于是找到test中hexa-test.tmx,拉了一个过来试试,还是不行,提示如下:

Get date from file(...hexa-test.png) failed!

用我的Tiled打开,竟然提示不支持旋转的tmx,看来连生存工具都不够档次。

吃饭去,吃完继续研究。


吃了饭睡了觉果然不同凡响,一觉醒来就想到了要把原始文件放进去,hexa-test.tmx的原始文件hexa-tiles.png放进去就可以打开了,可是我的1-test.tmx还是无法使用,也不提示上面的错误了,直接来应用程序错误。


额。可以了。确实zlib压缩 改成 gzip压缩就可以了,修改之后不会出现*号标志文件被修改了,但可以按Ctrl+S保存一下就可以更新文件了。


以下是base64-zlib压缩的编码

xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
<map version="1.0" orientation="orthogonal" width="10" height="10" tilewidth="32" tileheight="32">
 <tileset firstgid="1" name="hexa-tiles" tilewidth="32" tileheight="32">
  <image source="hexa-tiles.png" width="512" height="512"/>
 </tileset>
 <layer name="块层 1" width="10" height="10">
  <data encoding="base64" compression="zlib">
   eJxjYmBgYBrFgwYDAJ9gAMk=
  </data>
 </layer>
</map>

以下是base64-gzip压缩的编码

xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
<map version="1.0" orientation="orthogonal" width="10" height="10" tilewidth="32" tileheight="32">
 <tileset firstgid="1" name="hexa-tiles" tilewidth="32" tileheight="32">
  <image source="hexa-tiles.png" width="512" height="512"/>
 </tileset>
 <layer name="块层 1" width="10" height="10">
  <data encoding="base64" compression="gzip">
   H4sIAAAAAAAAC2NiYGBgGsWDBgMASwo5tJABAAA=
  </data>
 </layer>
</map>


可以发现只有<data>标签中类容不同。

<data encoding="base64" compression="zlib">
   eJxjYmBgYBrFgwYDAJ9gAMk=
  </data>

  <data encoding="base64" compression="gzip">
   H4sIAAAAAAAAC2NiYGBgGsWDBgMASwo5tJABAAA=
  </data>

由此可见我们的cocos2d-x对tmx的支持度并不高啊。


又发现个问题,cocos2d-x好像对tmx中使用bmp图片不支持。

悲哀的发现,也不支持tmx的多图层,我靠。