Game isometrik 2D saya menggunakan peta kisi heksagonal. Mengacu pada gambar di bawah, bagaimana cara memutar struktur segi enam biru muda sebesar 60 derajat di sekitar segi enam merah muda?
EDIT:
Hex utama adalah (0,0). Hexes lainnya adalah anak-anak, jumlah mereka tetap. Saya akan mendefinisikan hanya satu posisi (dalam hal ini kanannya) dan menghitung arah lain jika diperlukan (kiri-bawah, bot-kanan, kanan-atas, kiri-atas dan kiri). Hex lainnya didefinisikan seperti: Package.Add (-1,0), Package.Add (-2,0) dan seterusnya.
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;
}
Dalam kode ini Number
adalah hex utama dan Point
hex yang ingin saya putar, tetapi tidak berfungsi: