今天在解析TiledMap的时候,发现的坐标从文件读取出来的和程序里输出的不一样,先看图吧!
xxx.tmx文件里的数据:
输出坐标的代码:
程序里输出值:
看到这,估计大家都感到诧异,我也诧异,y坐标刚好倒过来,后来在CCTMXXMLParser.cpp里看到了以下代码:
以上代码就对y做了处理,在TiledMap里,原点是左上角,这里就转换成左下角了!
还没结束,因为我自己用的时候把以前老版本的卸载了,下载的最新版0.12.2,这又发现一个问题,先看图!
tmx文件里的数据,是6 * 6 的地图
程序输出的值:
按照之前的解析,坐标原点是左下角,但y坐标出现了负数,怎么可能呢!!!!!!问题出现在哪?先看tmx文件里,是不是比老版本多了width和height属性,这个就是关键!!!在转换坐标的代码里会减去一个height,在老版本里没有这个属性,获得的值为0,在新版本里减去了这个值,导致Y坐标出现这个误差,只要加上一个图块高度就可以了!!
时间: 2024-10-25 05:09:56