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的多图层,我靠。