我的2D等距游戏使用六角形网格图。参考下图,如何将浅蓝色六边形结构围绕粉红色六边形旋转60度?
编辑:
主十六进制是(0,0)。其他十六进制是孩子,他们的数目是固定的。我将只定义一个位置(在本例中为右),并根据需要计算其他方向(左底,右底,右上,左上和左)。其他十六进制定义为:Package.Add(-1,0),Package.Add(-2,0),依此类推。
switch(Direction)
{
case DirRightDown:
if(Number.Y % 2 && Point.X % 2)
Number.X += 1;
Number.Y += Point.X + Point.Y / 2;
Number.X += Point.X / 2 - Point.Y / 1.5;
break;
}
在这段代码中,Number
是主要的十六进制,Point
也是我要旋转的十六进制,但是它不起作用: