带高度的isometric tile map 斜45度 2d 地图制做

常见的 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 当逆向计算的时候 首先 计算 屏幕点击的点 所在的 矩形网格 接着 挨个试验 该矩形网格 可能包含的菱形网格

经过 减去可能的菱形网格的高度值 进行尝试计算 若是 计算结果 和 假设 相同 则 该点 属于 这个菱形网格  

相关文章
相关标签/搜索