Witam, w czwartej odsłonie artykułu poświęconego tworzeniu gier platformowych. Podczas tej lekcji damy bohaterowi gry możliwość strzelania kulami ognia oraz sprawimy, aby gra działała poprawnie również na szybszych procesorach niż 400 Mhz.

1.Ograniczenie FPS 

Na początku zajmiemy się tą drugą sprawą. Aby ograniczyć FPS w grze wystarczy w obiekcie TPowerTimer (Zegar) :
ustawić FPS na 120
uaktywnić MayProcess (True)
przenieść dotychczasową zawartość procedury OnRender do OnProcess

Poszukać w tej procedurze polecenia :

i zamienić je na :

W ten sposób na nowszych komputerach gra nie będzie zbyt szybko chodzić. Ograniczyliśmy FPS do 120, co powinno zapewnić nam płynność gry.

2.Kule ognia – wprowadzenie możliwości strzelania 

Najpierw utwórzmy nowy unit plikTPocisk. Będzie on zawierał wszystkie polecenia i procedury potrzebne do obsługi pocisków. Kolejnym krokiem jest zadeklarowanie innym unitów w uses oraz stworzenie struktury obiektu pocisku. Przedstawia się to następująco :

Jak zapewne zauważyliście struktura jest bardzo podobna do struktury gracza. Pocisk nie jest niczym innym jak takim graczem, tylko bez możliwości kontroli i trochę innych poleceniach.

Pociski będziemy tworzyć podczas uruchamiania gry, aby nie ładować co wystrzał pocisku jego grafiki od nowa. Procedura poniżej wczytuje animację pocisku odwróconego w lewo oraz w prawo

Poniższa procedura uaktywnia pocisk według podanych parametrów. Jest ona wywoływana w procedurze Idz obiektu TGracz po wciśnięciu przycisku Space.

Mamy już utworzony obiekt, nadszedł czas, aby było go widać na ekranie, do tego celu posłużymy się procedurą :

Teraz pozwólmy „oddychać” pociskowi, aby wiedział co ma robić :

Na zakończenie ostatnia procedura – niszcząca pocisk:

W ten sposób dotarliśmy na koniec naszego nowego unitu. Pozostało jeszcze tylko parę drobiazgów poza nim. Zerknijmy do unitu Zmienne.pas, i w var dodajmy

Oczywiście liczbę pocisków można zwiększyć, ale moim zdaniem powinno to wystarczyć.
Teraz otwórzmy plikTGra i dodajmy w procedurze RysujGraczy :

W tym samym unicie znajdziemy procedurę Oddychaj, do niej dopiszmy :

Tłumaczyć tych poleceń chyba nie muszę, pierwsza rysuje, następna wykonuje czynności danego przycisku. Pozostało nam jeszcze tylko polecenie obsługi przycisku spacji i okresowe wystrzeliwanie przycisku. Przejdźmy do pliku plikTGracz, tam w strukturze TGracz dodajmy dwie zmienne :

W procedurze TGracz.Tworz przypisz im wartości początkowe :

W tym samym unicie poszukaj procedury TGracz.Idz; Następnie poszukaj warunku dla gracza kierowanego przez człowieka :

Po nim umieść :

Na tym zakończymy ten artykuł.

Autor: Nakiel