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

本文探讨了在带有高度变化的TileMap游戏中实现斜坡效果的技术细节,包括如何解决不同高度地形带来的坐标转换难题,并介绍了一种通过将地图切割成矩形网格并计算可能菱形网格的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见的 tile map 游戏是 不带 高度变化的 也就是 地面都在一个水平面上 这样 3种 坐标 之间的变换 是比较简单的 

3 种坐标系统 可以参看 这篇文章

http://my.oschina.net/u/186074/blog/181488

而带有高度的 tile map 中 存在斜坡 以及不同高度的 地面 

效果参考下面这张图片

215842_WtZV_186074.png

如果从3d 的投影角度来看 斜坡上面的地面 将会在 x 以及 y 方向上 相对于 菱形网格产生一定的偏移

在 tiled map 这款编辑软件中 可以通过 图块的 offset 偏移 来 达到不同高度的效果


上面图片中 斜坡上面的地面 只在y 方向做了一定的偏移 这样 计算比较简单 但是 会在一些拐角位置 存在问题 导致斜坡上 和 斜坡下面的地面重叠


引入了高度 从屏幕坐标 计算回 菱形网格 坐标就 比较困难了


我采用的方法是 

1 将地图切割成矩形网格 

2 计算每个菱形网格 可能占用的 矩形网格  并将结果保存下来

3 当逆向计算的时候 首先 计算 屏幕点击的点 所在的 矩形网格 接着 挨个试验 该矩形网格 可能包含的菱形网格

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



转载于:https://my.oschina.net/u/186074/blog/201318

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值