Meu jogo isométrico 2D usa um mapa de grade hexagonal. Em referência à imagem abaixo, como faço para girar as estruturas de hexágono azul claro em 60 graus ao redor dos hexágonos rosa?
EDITAR:
O hex principal é (0,0). Outros hexágonos são filhos, o número deles é fixo. Vou definir apenas uma posição (neste caso, à direita) e calcular outras direções, se necessário (canto inferior esquerdo, botão direito, canto superior direito, canto superior esquerdo e esquerdo). Outros hexes são definidos como: Package.Add (-1,0), Package.Add (-2,0) e assim por diante.
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;
}
Neste código Number
é o hex principal e Point
é o hex que eu quero girar, mas não funciona: