cocos2d-x游戏实例(3)-获得地图索引
小滿(bill man)個人原創,歡迎轉載,轉載請注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
我們不僅要顯示地圖,還要對地圖進行一些邏輯操作,比如地圖的碰撞等,要獲得地圖的屬性,必須要獲得地圖的索引,就是地圖的行列值,那么我們如何根據坐標獲得地圖的索引值呢?本文將介紹Tiles工具支持的兩種地圖中根據坐標獲得地圖的索引值,普通地圖和45度角地圖
首先普通地圖比較簡單,就是用坐標值除以圖素的寬高即可,這也是一種比較常用的地圖表現方法。
下面介紹45度角的根據坐標獲得地圖的索引值,首先來看一下45度角地圖
就是一個菱形,我們從幾何的角度來轉換坐標,得到的像素寬高并不是真實的圖素寬高,而是每個小圖素塊的菱形的對角線的長,這樣一來問題就轉變為求解這個菱形中點對應的菱形棱長的問題
首先抱歉,我的圖畫的不好,A就是我們的坐標點,整個地圖就是這個菱形我們求出DC和CB就分別就可以除以圖素菱形棱長就可以求得對應索引坐標,這里要說明的是ABCD是個平行四邊形(雖然看起來......),所以,對于三角形ADC,我們只要獲得AD和DC的長就可以(AD等于BC),我們可以通過正弦定理解得(AD/sin角ACD?=?AC/sin角ADC?=?DC/sin角CAD)因為我們可以求出AC(兩點距離公式),我們可以獲得AC關于水平線的角,通過差角公式可以獲得角ACD,角CAD,然后角CDA也就獲得了,三角形也就解開了,我們分開A點在C點左和C點右的情況,代碼如下mystatic5是根號5?mystatic2是根號2?mystatic是菱形棱長(圖素高*根號5)
如有錯誤之處,希望大家多多指正
下一篇繼續游戲實例。
總結
以上是生活随笔為你收集整理的cocos2d-x游戏实例(3)-获得地图索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cocos2d-x游戏实例(2)-主角根
- 下一篇: cocos2d-x游戏实例(4)-地图碰