W tym artykule ożywimy trochę naszą gierkę. Wprowadzimy wrogie postacie. Zasada ich funkcjonowania będzie podobna jak w Mario tzn. jeżeli naskoczymy na wroga to on zginie, jeśli natomiast on dotknie nas, wtedy my giniemy. Będzie on poruszał się po terenie na swoim poziomie. Gdy dojdzie do jednego brzegu to skręci i będzie szedł do drugiego i tak w kółko.

Do pliku grafika.vtd dograłem grafikę nowej postaci, opis pominę, ponieważ pisałem o tym wcześniej.
Na początek otwórzmy plik zmienne.pas i dodajmy następujące pozycje :

Następnym krokiem będzie przetworzenie procedury TGracz.Tworz w unicie PlikTGracz, aby było można ją wykorzystać zarówno dla postaci grającej i wrogów. Nowe elementy procedury zostały zaznaczone pogrubioną czerwoną czcionką. Dodaliśmy grafikę wybuchu, niektórym zmiennym wartości będziemy przypisywać przy odwoływaniu się do procedury np. zmienna Tryb, określająca czy postać jest kierowana przez człowieka czy jest wrogiem.

Kolejną procedurą w której dokonamy zmian jest Rysuj. Określamy, czy postać jest w stanie żywym czy w trakcie wybuchu i przypisujemy odpowiednie do tego stanu grafiki. Do stanu st_martwy nie przypisujemy nic, aby jednostka znikła całkowicie z ekranu.

Śledząc kod dalej dojdziemy do procedury Idz , jest ona najważniejsza. Będziemy w niej określać typ kolizji gracza z wrogiem, kierować wrogą postacią. Na początku określamy które polecenia ma wykonywać dla postaci wrogich, kierowanych przez komputer, a które dla osoby grającej:

Polecenia postaci grającej pozostają bez zmian. Zajmiemy się więc postacią wrogą. Po pierwsze określmy ruch. Będzie się poruszać w prawo lub w lewo, tak długo, aż pole poniżej i przed będzie puste (czyli, aż znajdzie się na końcówce terenu). W takiej sytuacji zmieni kierunek na przeciwny, czyli tak samo jak w tradycyjnym Mario.

Postać już chodzi, teraz ustawimy reakcje na kontakt postaci grającej z wrogą. Rozważymy dwa przypadki. Pierwszy gdy znajduje się klatkę nad (czyli naskakuje na wrogą postać), wtedy ma wroga postać wybuchnąć :

Druga sytuacja, gdy znajdują się na tej samej klatce (doszło do kontaktu bocznego, bez skoku), wtedy nasz postać ma zginąć :

A oto cała procedura z wyróżnionymi nowymi elementami :

Najważniejsze mamy już z głowy. Teraz w unicie plikTGra, dodajmy polecenia, aby gra rysowała oprócz postaci grającej również wrogie postacie i wykonywała ich działanie. Zrobimy to poprzez dodanie :

Na zakończenie zajrzyjmy do procedury FormaOnKeyPress, poprawimy tam inicjowanie postaci grającej i zainicjujemy wrogie postacie

To wszystko, po uruchomieniu powinno wszystko działać. Kod się robi coraz bardziej skomplikowany, ale jeśli czytaliście poprzednie części tutorialu nie powinno być problemu z jego zrozumieniem.

Autor: Nakiel

Załączniki