270 likes | 399 Views
The GAME. Ogólna hierarchia klas. PLANSZA. Hierarchia klas. -Cała plansza zbudowana jest na tablicy wskaźników -Są to wskaźniki na klasę abstrakcyjną -Polimorfizm -Dziedziczenie -Plansza ma stały rozmiar 11 x 7 (ograniczenie ze względu na obramowanie planszy). Plansza gry. Zwykłe pola.
E N D
-Cała plansza zbudowana jest na tablicy wskaźników -Są to wskaźniki na klasę abstrakcyjną -Polimorfizm -Dziedziczenie -Plansza ma stały rozmiar 11 x 7 (ograniczenie ze względu na obramowanie planszy)
Zwykłe pola • Postać może poruszać się po nich • Kierunki poruszania się są zdefiniowane odpowiednimi wektorami • Na podstawie wektorów wczytywana jest odpowiednia bitmapa • Nie zawierają animacji • Nie zawierają pułapek
Pole pułapka • Postać może się po nich poruszać • Zawierają: -ukryte pułapki -widoczne pola bonusowe • Pola animują się po wejściu na nie • Pułapka pojawiają się w momencie wejścia na nią
Pole specjalne • Jest tylko jedno w całej grze • Animacja pola trwa nieustannie • Można je przesuwać • Każdy gracz ma na celu dotarcie do tego pola
Działania na polach • Zamiana elementów 1 vs 1 • Przesuwanie wierszy (obie strony) • Przesuwanie kolumn (obie strony) • Rotacja zaznaczonego obszaru
Zamiana elementów • Elementy można zamieniać gdy: • nie stoi na nich żadna postać • gdy zamieniane pole nie jest skrzynią ze skarbem
Zamiana elementów to : -zamiana wskaźnika -zmiana współrzędnych obiektu -odmalowanie obiektu
Przesuwanie wierszy • Wiersze można przesuwać w obie strony • Można przesuwać pułapki i pola bonusowe a także pole specjalne • Nie można przesuwać wierszy na których stoi postać • Na początku wiersza generowany jest nowy (przypadkowy) obiekt
Przesuwanie w lewo: -Pierwszy obiekt jest kasowany -Wskaźnik następnego przepisywany jest do poprzedniego -Przejście o jeden indeks w prawo i powtarzamy powyższy krok -Na ostatnim miejscu generujemy nowy blok -Odrysowanie całości
Przesuwanie wierszy w prawą stronę a także kolumn jest analogiczne do podanego przykładu
Rotacja • Rotacja jest niczym innym jak połączeniem przesuwania wierszy i kolumn. • Rotacje możemy dokonywać w kształcie prostokąta i kwadratu • Możemy obracać obiekty jeśli na tych polach nie stoi żadna postać
Generowanie planszy • Plansza generowana jest losowo • Maksymalna liczba pułapek : 4 • Prawdopodobieństwo wylosowania pułapki szacuje się na około 0.15 w każdym losowaniu • Po wylosowaniu pułapki losowany jest jej typ • Generator pól tworzy dokładnie jedną skrzynie ze skarbem
Wraz z każdym polem generowany jest odpowiedni wektor przejścia • Wektor generowany jest w sposób losowy co gwarantuje niepowtarzalne ułożenie labiryntu • Do każdego pola wczytywana jest bitmapa zależna od ułożenia wektorów • Pierwsze i ostatnie pole jest zawsze „krzyżakiem”
Character • Cechy wspólne dla postaci • Enum{} • Powieszchnie graficzne ( SDL_Surface ) • Move()
Mage,Thief,Warrior • SpecjalPower(…) • InteractWhitBoard(…) • Konstruktory(…)
Battle-Mag,Fairy • SpecjalPower(…) • InteractWhitBoard(…)
compressor • Read_Pole • Read_Playear_Status • Position • Union • Zapis do pliku • Odczyt z pliku • Operatory >> i <<
Dziękujemy Bylak Artur Hojczak Jacek Gadziński Przemysław