Rozdział 21 · Projekt: kosmiczny strzelec
Co zbudowaliśmy i jak dalej rozwijać grę
Od pierwszego okna w rozdziale 20 do testowanej, omawianej gry z własną grafiką.
Space shooter dobiegł końca — a wraz z nim zamykamy drugi ważny temat kursu: Pełnoprawny Pygame rozwoju gier, od pierwszego okna w Rozdziale 20 po testowalny, dubbingowy Gry z niestandardową grafiką są już dostępne.
Co zbudowaliśmy w tym rozdziale
- Pełnoprawna gra z pięcioma klasami:
Game,Player,Bullet,Enemy,Explosionzamiast zmiennych globalnych i list. - Precyzyjne poruszanie się
Vector2i delta time — ta sama zasada z rozdziału 20, zastosowana do bieżącego projektu z wieloma typami obiektów naraz. - Timery rozróżniające symulację offline (pojawianie się wrogów, animacje – zachowanie pozostałego czasu poza while) interwałem oraz reakcją na dane gracza (odstęp między strzałami to nie więcej niż jedno zdarzenie na klatkę).
- Kolizje przez
pygame.sprite.groupcollide()orazspritecollide(), z ochroną przed podwójnym punktowaniem i utratą wielu żyć w jednym jednoczesnym zderzeniu. - Jawne stany gry (
GameStatus) oraz kontrakt restartowy, który naprawdę resetuje cały stan przejściowy — nie tylko wynik. - Własna grafika i dźwięk, załadowane raz, oraz grę, którą można automatycznie sprawdzić — poprzez wdrożenie generatora liczb losowych i uruchomienie bez okna pod „pustym” sterownikiem SDL- (headless).
Dokąd rozwijać projekt dalej
Pomysły na rozwój osobisty
Więcej typów przeciwników
Własne wzorce ruchu (zygzak, celowanie w statek)
Niestandardowe sprite'y i okulary
Bonusy i power-upy
Tymczasowe efekty dzięki temu samemu ruchowi z timerem co niewrażliwość
Tarcza, Podwójny Strzał, Dodatkowe Życie
Szefowie
Duży wróg z własnym zdrowiem (nie jedno trafienie)
Własny zestaw ataków
Utrzymanie rekordu
Pisanie high_score do pliku między kolejnymi przejściami (Rozdział 15)
Nie tylko podczas jednej sesji
Kolejny rozdział zmienia kierunek z lokalnych gier na Pygame na rozwój stron internetowych na Python. Zasady nauczone tutaj to wyraźny podział obowiązków między klasami, wyraźny stany, czyli testowany kod, przydadzą się tam, tylko w innym środowisku.