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;