这次来学习下AndEninge里TMX地图的用法。以为很简单,结果还是折腾了我好久 好久 怨念啊。(一) Tiled的使用
免费的TMX制作工具有不少,找了半天和看了不少人的推荐 ,选择了Tiled 下载地址 :www.mapeditor.org
下载安装后就可以使用了,我看了下 示例里面需要两个文件 一个tmx文件 ,还有个 tsx文件 。tmx文件里保存的是地图数据,地图矩阵就在里面,但打开显示的是乱码。
tsx文件里保存的是图元的一些信息文件,两个文件也可以合成一个tmx文件。这两个文件要分别导出,tsx文件由右下角图快模块 导出。
(二)Tiled画图示例
代码非常非常简单,就是显示张地图,关键是前面tmx和tsx两文件配置花了我不少时间。显示一层图像根据实例做出来了,要注意把地图属性改为 base64 zlib 或glib。
但一般游戏地图不会只有一层,都会有好几层,比如背景层,实体层。我就开始尝试下显示多层的图片。先用Tiled画了张图,分为两层。如图
实体层:

背景层:

以为可以和单层的地图一样的,结果出错了。空指针错误 出错位置
AndEngine(5846): at org.andengine.extension.tmx.TMXLayer.addTileByGlobalTileID(TMXLayer.java:274)
看了半天源码没找出原因,只好求助google,发现出这问题的不少,要改源码 ,解决办法如下:
https://github.com/winniehell/AndEngineTMXTiledMapExtension/commit/
3d481f7d8d3903bc2b0d8a2a295e4e2c610a7544;尝试着改了下。运行时通过了,原因还不甚了了,希望懂了的可以不吝赐教,我也在慢慢看。
结合图: