eventsy? jak to rozwiazac

0

Witajcie

Piszę sobie gierkę w C#- prosta gra turowa, w której chodzimy postacią po planszy (aż dojdziemy do mety). Niektóre pola mają 3 ruchy do tyłu, 3 ruchy do przodu, jakieś przeczekania rundy, zabieranie pieniędzy graczowi itp - ot zwykła gierka planszowa, taka jak dla dzieci.

tutaj pojawia się moje pytanie jeżeli chodzi o poruszanie się po planszy. Mam planszę stworzoną z paneli w których są obrazki. Obiekt gracza jest pionkiem (a właściwie zamalowanym panelem/pictureboxem).
Jak zmusić pionek do poruszania się po polach gry (panelach)?
Jak wywoływać zdarzenia, gdy pionek pojawi się na X polu? (bo np. wylosuje taką liczbę). Pionek pojawił się na polu 14 więc musi cofnąć się o 2 pola - itp. Jak to zaimplementować?

Potrzebuję generalnie wskazówek jak to wdrożyć z eleganckim efektem. Czym się kierować generalnie i jak to powinno wyglądać?

0

Mam planszę stworzoną z paneli w których są obrazki.

A nie sądzisz, że lepszym rozwiązaniem byłoby wykorzystanie zaledwie jednego np. TPictureBox i malowanie tylko i wyłącznie na jednej kontrolce?

Obiekt gracza jest pionkiem (a właściwie zamalowanym panelem/pictureboxem).

Tego właśnie można by uniknąć - nadmiernego pakowania komponentów; Zamiast tworzyć dla każdego pola nowy komponent, utwórz jedną kontrolkę, a informacje o bitmapach, typach pól, ilości przeskakiwania iczek itd. zaimplementuj np. w macierzy 2D; Fajny efekt można by uzyskać, jeśli wykorzystasz jeden komponent TPictureBox dla tła planszy (rozciągnięty do właściwych rozmiarów), który będzie na samym spodzie formularza, oraz tyle dodatkowych kontrolek także TPictureBox, ilu jest graczy (czyli pinków), gdzie każdy z pionków jest nad tłem planszy;

Jak zmusić pionek do poruszania się po polach gry (panelach)?

Tak jak napisałem - w ww. sposób możesz osiągnąć bardzo prosty efekt poruszania się pionkami bez zbędnego przemalowywania a tym bardziej wykorzystywania gotowych API, jak OpenGL czy DirectX (lub prostrze i łatwiejsze w obsłudze); W zwykłej pętli można przesuwać mały pionek (czyli kontrolkę) co kilka pikseli symulując ruch pionka; Rozwiązanie bardzo proste, ale można się przyłożyć i stworzyć fajny efekt - dobre dla początkujących;

Jak wywoływać zdarzenia, gdy pionek pojawi się na X polu? (bo np. wylosuje taką liczbę).

Nie wiem czy zdajesz sobie sprawę co to są zdarzenia - podpowiem: to nie funkcje, które operują na formularzach/kontrolkach; Zaimplementój własą klasę silnika gry z odpowiednimi metodami po prostu do grania i je wykorzystuj; Nie rozumiem z Twojego opisu, czy gracz wykorzystując Drag and Drop może przesuwać pionek, czy ruch jest tylko i wyłącznie po jednej "ścieżce", a jedynie ilość pól określa wartość wylosowana; Jeśli potrzeba przeciągać pionek myszą - poczytaj o zdarzeniach obsługi muszy :] Jeśli nie - zaimplementój w klasie silnika gry automatyczną symulację rzutu kostką oraz przesuwanie pionka;

Potrzebuję generalnie wskazówek jak to wdrożyć z eleganckim efektem. Czym się kierować generalnie i jak to powinno wyglądać?

Powinno to wyglądać tak, żebyś rozumiał cały kod, oraz żeby działał; Do wprawy i profesjonalizmu dojdziesz z czasem, a im więcej będziesz kodził, tym szybciej to nastąpi;

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