Witam w drugiej część. Poniżej zrzut z działającego kodu tej części.

W naszym modelu świata 2D pojawiły sie punkty werbunkowe w postaci sztandarów tworzonych jednostek. Teraz my musimy zmusić naszego przyszłego żołnierza do zaciągu. Co jak co nawet w świecie 2D armia nie cieszy się popularnością…

Jak to zrobić?

Nie będzie to trudne. Przyjmijmy, że graficznym sygnałem wstąpienia do armii będzie:

  • mundur muszkietera
  • uzbrojenie w szpadę

Tu chcę podkreślić, że w rzeczywistej grze oprócz zmian graficznych dobrze by było zwiększyć na przykład: stopień agresji, punktów życia, siły ataku itp. Czyli w klasie duszka nale przewidzieć odpowiednie pola które te właściwości będą przechowywać. W omawianym modelu zajmiemy się tylko częścią dotyczącą grafiki. Za rodzaj obrazu graficznego odpowiadają wartości liczbowe zapisane w tych polach klasy tworzonego żołnierza:

Chcąc ukryć broń wystarczy postąpić jak poniżej

W przypadku gdy chcemy zmienić rodzaj broni Powiedzmy z maczugi na szpadę to do zmiennej fIdKlatkaBron należy podać indeks pierwszej klatki z nową bronią

Czyli jest to pierwsza klatka z lewej strony wiersza drugiego zasobów grafiki z bronią.

Gdzie i kiedy to zrobić? : )

W omawianym przykładzie wybrałem dwie sytuacje zmiany broni. Pierwsza sytuacja występuje podczas kolizji jednego duszka z drugim. W wyniku takiego spotkania jeden z duszków traci tarczę i broń na rzecz drugiego. Technicznie załatwiamy to tak:

Druga sytuacja to werbunek. Do zaciagu dochodzi wtedy gdy duszek będzie z kolizją obrazu sztandaru. W wyniku takiej kolizji zmienia się mundur (korpus), broń i zabierana jest tarcza.

Jak widać proces zmian jest bardzo prosty. Polega tylko na zmianie odpowiednich wartości liczbowych. Jedynie od scenariusza gry zależy kiedy do takich zmian dochodzi. Ja wybrałem momenty kolizji z innymi duszkami lub z obrazem sztandaru. Kolizje i ruch uniwersalnego duszka oparty jest na modelu BOROSTWORA z Wędrówek w świecie 2D. Stąd też nie będę zasad wykrywania kolizji nie będę tu omawiać.

Na zakończenie chciałbym zwrócić uwagę na:

  • klasę tSztandar, która jest dzieckiem klasy TSimpleAnimSprite. Analizując moment tworzenia sztandaru proszę zwrócić uwagę jakie parametry wymagane są do tworzenia płynnej i ciągłej animacji (tu falowanie flagi).
  • tworzenie duszków naszej przyszłej armii odbywa się na podstawie odczytu pliku tekstowego postacie001.txt, który został utworzony narzędziem omawianym w pierwszej części tego cyklu. Procedura która tworzy duszki to TworzZolnierzy(’postacie001.txt’); zapisana jest ona w pliku Unit1.pas

I to by było na tyle.

Pozdrawiam oksal

25.06.2006 Zbylitowska Góra

Autor: oksal

Załączniki