欢迎光临散文网 会员登陆 & 注册

关于redblobgames的六边形int坐标系

2023-07-04 18:05 作者:DeadCyber  | 我要投稿

对于六边形tile游戏,通常用另一种坐标系,方便表示和操作。

以前自己瞎设计了简单坐标系,可以支持一些简单功能,而且直观:


不过麻烦的是跨轴的时候,需要判断,就使得象限之外的轴始终为0。

最近希望遍历一个六边形周围6个六边形的中心点坐标,这样搞会很麻烦。

(当然你可以使用极坐标旋转去遍历,但是这样就不是int坐标系了,出现的float在判断相等的时候会很麻烦)

于是看看townscaper作者推荐的博客。文中有一个坐标系,我简称srq系,有一些好处。先看图:

相比我的坐标系,它有几个好处:

第零。它是全局的坐标系,不用考虑跨象限srq坐标转换问题。不过从cartesian转换回srq还是要考虑象限的,也很麻烦。

第一。有正负轴。如果srq坐标乘以-1,则得到以原点对称的位置。

第二。每个srq邻居都是对2个轴的(1,-1),而且按照图中的标记法,可以很方便看出移动所对应改变的2轴,是垂直于方向的两个轴。并且是“左+右-”

总之,是方便代码遍历一个块的周围块了。

关于redblobgames的六边形int坐标系的评论 (共 条)

分享到微博请遵守国家法律