常見的 tile map 遊戲是 不帶 高度變化的 也就是 地面都在一個水平面上 這樣 3種 座標 之間的變換 是比較簡單的 spa
3 種座標系統 能夠參看 這篇文章.net
http://my.oschina.net/u/186074/blog/1814883d
而帶有高度的 tile map 中 存在斜坡 以及不一樣高度的 地面 blog
效果參考下面這張圖片遊戲
若是從3d 的投影角度來看 斜坡上面的地面 將會在 x 以及 y 方向上 相對於 菱形網格產生必定的偏移圖片
在 tiled map 這款編輯軟件中 能夠經過 圖塊的 offset 偏移 來 達到不一樣高度的效果get
上面圖片中 斜坡上面的地面 只在y 方向作了必定的偏移 這樣 計算比較簡單 可是 會在一些拐角位置 存在問題 致使斜坡上 和 斜坡下面的地面重疊軟件
引入了高度 從屏幕座標 計算回 菱形網格 座標就 比較困難了map
我採用的方法是 方法
1 將地圖切割成矩形網格
2 計算每一個菱形網格 可能佔用的 矩形網格 並將結果保存下來
3 當逆向計算的時候 首先 計算 屏幕點擊的點 所在的 矩形網格 接着 挨個試驗 該矩形網格 可能包含的菱形網格
經過 減去可能的菱形網格的高度值 進行嘗試計算 若是 計算結果 和 假設 相同 則 該點 屬於 這個菱形網格