今天在解析TiledMap的時候,發現的座標從文件讀取出來的和程序裏輸出的不一樣,先看圖吧!
xxx.tmx文件裏的數據:
輸出座標的代碼:
程序裏輸出值:
看到這,估計大家都感到詫異,我也詫異,y座標剛好倒過來,後來在CCTMXXMLParser.cpp裏看到了以下代碼:
以上代碼就對y做了處理,在TiledMap裏,原點是左上角,這裏就轉換成左下角了!
還沒結束,因爲我自己用的時候把以前老版本的卸載了,下載的最新版0.12.2,這又發現一個問題,先看圖!
tmx文件裏的數據,是6 * 6 的地圖
程序輸出的值:
按照之前的解析,座標原點是左下角,但y座標出現了負數,怎麼可能呢!!!!!!問題出現在哪?先看tmx文件裏,是不是比老版本多了width和height屬性,這個就是關鍵!!!在轉換座標的代碼裏會減去一個height,在老版本里沒有這個屬性,獲得的值爲0,在新版本里減去了這個值,導致Y座標出現這個誤差,只要加上一個圖塊高度就可以了!!