C++ Irrlicht - Czyli jak stworzyć mapę heksagonalną

1

Jak w tytule.
Szukam sposobu jak utworzyć mapę sześciokątną w C++ oraz z użyciem biblioteki Irrlicht.

image

2

nie wiem nic o Irrlicht, ale o hexach tu jest fajny artykuł https://www.redblobgames.com/grids/hexagons/

0

o hexach co nieco sam wiem. Nie wiem jak się za to zabrać w Irrlicht.

0

W sensie chcesz zrobić mapę 2D w hexach w bibliotece Irrlicht która jest 3D czy może chcesz nałożyć hexy na płaszczyznę 3D aby mapa trójwymiarowa miała pola jak np. w King's Bounty?

0

Chcę stworzyć mapę 3D z heksów 2D.

1

Czy Irlicht pozwala ci na tworzenie geometrii przez definiowanie współrzędnych punktów składających się na siatkę trójkątów?

Jeśli tak, to kwestia jest podzielenia mapy na trójkąty (np. jeden hex mógłby być reprezentowany przez 4 trójkąty: 1 na górze, 1 na dole, i 2 składające się na prostokąt w środku)

To jeśli chodzi o samą geometrię, nie wnikając w shader czy tekstury.

Natomiast mam wrażenie, że chcesz rozwiązać jeden złożony problem bez dzielenia go na specyficzne podproblemy (np. w tym poście opisałem kwestię jedynie geometrii)

0

Ponoć pozwala. Tylko właśnie nie wiem jak się za to zabrać. Wtedy mógłbym scene stworzyć przy pomocy hexagonów zdefiniowanych przez wierzchołki.

1

Jeszcze pytanie - czy mapa będzie na różnej wysokości czy będzie płaska?

Bo jeśli mapa będzie płaska, to w zasadzie nawet nie trzeba geometrii robić, tylko wystarczy jakaś płaska geometria, która będzie jednak podzielona na heksy, gdzie każdy tekst byłby teksturowany osobno (w customowym shaderze na przykład).

Tylko właśnie nie wiem jak się za to zabrać.

Podziel problem na podproblemy i każdy podproblem możesz osobno rozwiązywać. Jeśli problem dotyczy hex, to rozwiązuj choćby na papierze (oraz zapoznaj się z tym artykułem od RedBlobGames) ew. użyj do prototypowania jakiejś innej biblioteki, którą znasz lepiej (albo nawet w innym języku programowania możesz napisać prototyp. Albo w 2D zamiast w 3D itp.).

Jeśli problem jest z tym, jak to zrobić w Irrlicht, to olej na początku hexy i uprość problem do zrobienia w Irlicht customowej geometrii (trójkąta, sześcianu itp. ale żebyś zrobił to samemu definiując współrzędne każdego wierzchołka i definiowania każdego trójkąta) albo customowych shaderów (bardzo prostych na początku) itp. Potem możesz się pobawić w problem "jak wygenerować pojedynczego hexagona w Irrlicht" (czy to definiowanego przez geometrię, czy przez shader). Jak wygenerować kilka hexagonów, każdy w innym kolorze (a potem "jak poprawnie je oteksturować), potem też "jak wykryć, w którego hexagona użytkownik klika myszą itp.

Ale też warto się zastanowić, co z tego nie jest już dla ciebie problemem, a co jednak jest (bo może masz specyficzny problem z czymś konkretnym).

0

ok.
W takim razie jak w Irrlicht wygenerować pojedynczy trójkąt zdefiniowany przez 3 trójwymiarowe wierzchołki ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1