今天在解析TiledMap的时候,发现的坐标从文件读取出来的和程序里输出的不一样,先看图吧!

    xxx.tmx文件里的数据:

wKioL1VigCDQp9_xAAFqYi-VeYQ334.jpg

 

    输出坐标的代码:

wKiom1VifpOiQQXPAADv3aY-fpI054.jpg

    程序里输出值:

wKiom1VifpODFXXnAACatkbtTp0548.jpg

    看到这,估计大家都感到诧异,我也诧异,y坐标刚好倒过来,后来在CCTMXXMLParser.cpp里看到了以下代码:

wKiom1VifpKxALTWAADIfhJNYig271.jpg

    以上代码就对y做了处理,在TiledMap里,原点是左上角,这里就转换成左下角了!

    还没结束,因为我自己用的时候把以前老版本的卸载了,下载的最新版0.12.2,这又发现一个问题,先看图!

        tmx文件里的数据,是6 * 6 的地图

wKiom1Vig8TDMghbAAGVcS9S650304.jpg

        程序输出的值:

wKioL1VihVDwXdNUAACx_foV0cs157.jpg

        按照之前的解析,坐标原点是左下角,但y坐标出现了负数,怎么可能呢!!!!!!问题出现在哪?先看tmx文件里,是不是比老版本多了width和height属性,这个就是关键!!!在转换坐标的代码里会减去一个height,在老版本里没有这个属性,获得的值为0,在新版本里减去了这个值,导致Y坐标出现这个误差,只要加上一个图块高度就可以了!!