Objective c 在偏移平铺贴图上查找相邻坐标

Objective c 在偏移平铺贴图上查找相邻坐标,objective-c,math,coordinates,tile,Objective C,Math,Coordinates,Tile,我有一个六角形的格子。由于视觉原因,每隔一行稍微偏移一次。想象一个玩家触摸任何一块瓷砖-我需要将该瓷砖的坐标与他们接下来触摸的任何瓷砖进行比较,这样我就可以确保它们彼此相邻 如果网格没有偏移,我可以简单地确保我们在1 x和1 y坐标范围内,但在某些情况下这是失败的 我可以非常接近-以下代码在所有情况下都有效,但仍然允许坐标3,2和4,3算作邻居,以及具有类似数学关系的其他坐标 int diffX = abs(newCoord.x - lastCoord.x); int diffY = abs(n

我有一个六角形的格子。由于视觉原因,每隔一行稍微偏移一次。想象一个玩家触摸任何一块瓷砖-我需要将该瓷砖的坐标与他们接下来触摸的任何瓷砖进行比较,这样我就可以确保它们彼此相邻

如果网格没有偏移,我可以简单地确保我们在1 x和1 y坐标范围内,但在某些情况下这是失败的

我可以非常接近-以下代码在所有情况下都有效,但仍然允许坐标3,2和4,3算作邻居,以及具有类似数学关系的其他坐标

int diffX = abs(newCoord.x - lastCoord.x);
int diffY = abs(newCoord.y - lastCoord.y);

// Never allow jumping rows
if( diffY > 1 || diffX > 1 ) return false;

// Allow same columns
if( diffX == 0 || diffY == 0 ) return true;

return false;

一位朋友有一个想法,将坐标组合成一个数字,并确保邻居的坐标在一定的范围内,但在几个组合中也失败了。

这比我可能解释的更彻底:哇,这看起来是一个惊人的资源。谢谢但是要整理的东西很多。。。我看看能提取什么