關於TiledMap的座標那些事

    今天在解析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座標出現這個誤差,只要加上一個圖塊高度就可以了!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章