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

时间:2015-02-28 23:45:06

标签: objective-c math coordinates tile

我有一块六角形瓷砖。由于视觉原因,每隔一行略有偏移。想象一下玩家触摸任何瓷砖 - 我需要将该瓷砖的坐标与他们接触的任何瓷砖进行比较,这样我才能确保他们彼此相邻。

enter image description here

如果网格没有偏移,我可以简单地确保我们在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;

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

0 个答案:

没有答案