Podczas tworzenia kodu do tego tutoriala nieźle się na stresowałem przez własną głupotę:) przy zabijaniu wrogów, w złym miejscu zdeklarowałem zmienna na podstawie, której ich tworzyłem. Zdeklarowałem ją jako zmienną globalną, zamiast lokalną w konstruktorze. Ale wszystko jest już Oki, więc zabrałem się za napisanie tego tekstu.

Na początek bierzemy kod z poprzedniej lekcji. Piszemy kod klasy dla wroga, u mnie nazywa się ona TWrog.

Jak widzimy TWrog jest klasą pochodną od TSprite. Klasa TWrog posiada dwie procedury. Jedna z nich tworzy nowego wroga (tworz_wroga), a druga odpowiedzialna jest za wydarzenie podczas kolizji z innym obiektem typu Sprite (OnCollission).
Kod procedury tworzącej wroga będzie podobny do tej, która tworzyła gracza.

Jak już pisałem wcześniej idea tej procedury jest taka jak dla tworzenia gracza. Jedyny wyjątek to ten, że wrogów tworzymy w pętli (to znaczy, że chcemy mieć kilku wrogów, bo jednym to się nie nacieszymy ).
Może zauważyliście, że w stosunku do poprzedniego artu wprowadziłem małą zmianę jeśli chodzi o ustalanie rozmiarów obiektów. W poprzedniej części rozmiary wpisywałem na „sztywno”, jest to sposób dość nie uniwersalny (wystarczy, że zmienimy rysunek dla np.: gracza i musimy znowu wpisywać rozmiary). Teraz te rozmiary są pobierane automatycznie przez funkcje za to odpowiedzialne. W przypadku wroga:

Aby móc tworzyć wroga musimy zdeklarować zmienna globalną typu TWrog (ja nazwałem ją Obcy). Jest nam potrzebna do wywołania procedury tworzącej wrogów.
Przy tej okazji możemy zdefiniować także zmienną „punkty” typu np.: integer – wiadomo do czego 😉

Mając prawie gotowego wroga należy się przygotować na atak, czyli strzelanie.
Definiujemy klasę Kula pochodną oczywiście od TSprite:

Teraz należałoby wykorzystać tą klasę i zacząć jej używać w praktyce. Aby to zrobić musimy w procedurze TGracz.Move zadeklarować zmienną Kula : TKula oraz dopisać taki kod tworzący i rysujący kulę w tej procedurze.

oisButton1 to nazwa spacji w OmegaInput. Pozostałą część chyba nie muszę tłumaczyć. Podobna sprawa jest przy graczu i wrogach.

No dobra w tej chwili jesteśmy wstanie narysować wrogów na ekranie (i co z tego, my chcemy do nich strzelać, zabijać i dostawać punkty 🙂 Do tego jest właśnie potrzebna procedura OnCollission.
Podczas kolizji określamy z jakim Spritem wróg może się zderzyć i co ma się stać.
Chcemy, aby nasz wróg podczas zderzenia z kulą znikał, znikła także kula, która go uderzyła i oczywiście, aby dodały nam się punkty.

To jest kod procedurki kolizji dla wroga:

Wroga mamy prawie gotowego 🙂
Teraz do procedury FormCreate dodajemy wywołanie procedury tworzącej wroga oraz zerujemy licznik punktów:

Teraz zajmiemy się wprowadzaniem zmian w procedurze OnTimer dla Omti.
Dodajemy funkcje odpowiedzialne za obsługę Spritów:

Do szczęścia brakuje nam teraz tylko wyświetlanie punktów przez nas zdobytych. Realizujemy to przez dodanie lini:

Między omfo.BeginFont i omfo.EndFont;

To by było chyba na tyle. Mam nadzieje, że niczego nie pominąłem. Jak zwykle dołączam źródło.

Na koniec tego tutoriala mam do Was prośbę, a mianowicie moglibyście jakoś skomentować moje arty. Czy Wam się podobają czy nie?? Co chcielibyście w następnym arcie?? Bardzo by mi to pomogło. Na pewno dostosuje się do waszych komentarzy.

Z góry wielkie dzięki i do zobaczonka ( mam nadzieję, że niedługo 🙂

Autor: Goofyx

Załączniki