Mi juego isométrico 2D utiliza un mapa de cuadrícula hexagonal. En referencia a la imagen a continuación, ¿cómo giro las estructuras hexagonales azul claro en 60 grados alrededor de los hexágonos rosados?
EDITAR:
El hexágono principal es (0,0). Otros hexes son hijos, el conteo de ellos es fijo. Voy a definir solo una posición (en este caso es la derecha) y calcular otras direcciones si es necesario (izquierda-abajo, derecha-abajo, derecha-arriba, izquierda-arriba e izquierda). Otros hexes se definen como: Package.Add (-1,0), Package.Add (-2,0) y así sucesivamente.
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;
}
En este código Number
es el hexágono principal y Point
es el hexágono que quiero rotar, pero no funciona: