Gra planszowa - plansza i WPF

Odpowiedz Nowy wątek
On
2011-08-06 21:28
On
4

Tworzę grę(steam - może ktoś zna) i mam już całą logikę - można grać, ale tylko w funkcji main, kompilując kod ;].
Teraz tworzę interfejs i szukam wskazówki jak rozwiązać sprawę planszy(mowa o WPF). Tak wygląda w rzeczywistości:
user image
Chodzi o tą mapę sześciokątów. W założeniu, użytkownik musi mieć możliwość kliknięcia na każdy z sześciokątów oraz na jego krawędzie. I tu pytanie do forumowiczów... Jak sobie z tym poradzić? Stworzyć jakieś własne buttony? Co w tedy z krawędziami? Fajnie byłoby nie bawić się ze współrzędnymi umiejscowienia tych sześciokątów, może jakiś panel, który zrobiłby to za mnie? Może całość napisać samemu - tu pytanie jak? Po prostu głośno myślę, więc proszę o jakąś pomoc. Dodam że MAM listę obiektów moich klas, zawierającą wszystkie sześciokąty tej mapy. Pytanie dotyczy grafiki, no i tego czy ta lista to ma być jakaś observable collection do której coś przybindujemy czy jak?

Pozostało 580 znaków

2011-08-06 22:34

Rejestracja: 12 lat temu

Ostatnio: 5 lat temu

2

Na pewno nie ma żadnej kontrolki, która zrobi to za Ciebie. Najprościej zrobić swoją i w sumie wiele obliczeń z umiejscowieniem sześciokątów by chyba nie było jakby dobrze się to przemyślało.


Some people see things as they are, and say "why?". I dream things that never were and say "why not?".

Pozostało 580 znaków

On
2011-08-06 23:04
On
0

No ok, czyli UserControl, który zawiera co? Jakieś obiekty Image? Buttony? Wydaje mi się, że najlepiej byłoby stworzyć kontrolkę, która na wzór ListBoxa ma kolekcję swoich elementów(w tym wypadku jakiś tam obiektów klasy Hex i jej pochodnych). Pytanie teraz co i jak wyrysować w tej UserControlce na podstawie mojej listy elementów - Hexów? I WAŻNIEJSZE, jak to zorganizować tak, aby potem, używając tej mojej kontrolki - mapy - nie bawić się w ręczne edytowanie dodawanie powiedzmy buttonów, a operować na obiektach, znajdujących się w liście - obiektach klasy Hex i pochodnych...

Pozostało 580 znaków

On
2011-08-06 23:09
On
1

Właściwie to odpowiedziałem sobie na wiele problemów pisząc powyższy post. Planuje tak: User Control - cała mapa, jakiś kontener albo coś(tu proszę o pomoc), który decyduje o ułożeniu sześciokątów - kolejnych user controlów gdzie sam już zadbam o obsługę klikania odpowiedniego. Ten pierwszy UserControl - moja mapa, będzie zawierała tą wymarzoną listę, którą odzwierciedli na ekranie - w swoim kontenerze czy coś. Proszę o podpowiedź czy dobrze sobie to zaplanowałem. Czym powinien być kontener na te sześciokąty -na te drugie UserControlki? Jak wyliczyć ich ułożenie?

Pozostało 580 znaków

MiL
2011-08-08 09:44
MiL

Rejestracja: 14 lat temu

Ostatnio: 4 miesiące temu

2

Powinno się to zrobić rysując wszystko samemu. Możesz stworzyć bitmapy odpowiadające różnym typom hexów a w pamięci tablicę z mapą. Poczytaj o programowaniu map heksagonalnych, w internecie są do tego poradniki.

Pozostało 580 znaków

2011-08-09 11:21

Rejestracja: 8 lat temu

Ostatnio: 10 godzin temu

2

Przemyśl jeszcze inny interfejs, np. XNA. Tu jest tutorial odnośnie tworzenia map hex:
http://xnaresources.com/defau[...]e=Tutorial:TileEngineSeries:3

Pozostało 580 znaków

2011-08-09 11:29

Rejestracja: 11 lat temu

Ostatnio: 3 lata temu

2

Ale trzymanie hex'ów w liście to dobry pomysł? Nie lepiej w tablicy dwuwymiarowej?
Poszukaj pomysłów na algorytmy przechowujące planszę hexową w tablicy i wyliczające możliwe ruchy, wyszukujące ścieżki., zanim zaczniesz pisać kontrolkę.
A kontrolka nie powinna trzymać hexów, tylko dostać obiekt mapy i umieć go narysować. Czyli w hex jest zapisany np. rodzaj terenu = bagno. A kontrolka, wie że bagno, to użyj tekstury textura10.png.
Czyli odseparuj logikę rysowania i użycia zasobów (textur etc.) od przechowywania informacji o planszy, grze.

edytowany 1x, ostatnio: massther, 2011-08-09 20:06
Dlaczego to samo słowo piszesz w jednym poście za każdym razem inaczej? Lepiej popraw błąd, zanim będzie wtopa. :P - somekind 2011-08-09 19:53

Pozostało 580 znaków

On
2011-08-09 14:50
On
0

Dzięki za wszystkie odpowiedzi. Ja oczywiście będę musiał to i tak dostosować konkretnie do mojego programu, ale teraz wiem jak zbudować program od strony 'architektonicznej', a o to mi chodziło.
Z XNA nie skorzystam, ale dzięki za podpowiedź. Po prostu koniecznie chce tu mieć WPF :).
Temat do zamknięcia.

Pozostało 580 znaków

Odpowiedz

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

Robot: CCBot