Rozdział 21 · Projekt: kosmiczny strzelec

Boisko i interfejs zawodnika

Liczenie i życia na górze znajdują się na własnym pasie — obiekty gry nie wchodzą do niego fizycznie.

Rozdział 19 już pokazał, co się dzieje, gdy interfejs nakłada się na boisko: ważny tekst może znajdować się pod ruchomym obiektem. Ostateczna wersja strzelca od samego początku się odróżnia ekran do dwóch wyraźnie różnych obszarów: pola gry i paska z odczytami dla gracza – wynik, życia, liczba fali. Taka passa na szczycie świata gier w branży nazywana jest zwykle HUD (Heads-Up Display, „dashboard”

Real Window: Górny ciemny pasek ścieżki i HUD żyje oddzielony cienką linią od głównego pola gry, z gwiaździstym tłem i statkiem poniżej
Okno rzeczywiste — pasek interfejsu u góry (64 piksele) jest oddzielony cienką linią od pola gry; Żaden wróg ani pocisk nie może przekroczyć tego limitu.
fragment_playfield.py
HUD_HEIGHT = 64

self.playfield = pygame.Rect(0, HUD_HEIGHT, SHIRINA, VYSOTA - HUD_HEIGHT)

Pole gry jest normalne Rect, nie tylko numer wcięcia: ma Natychmiast jedz .top, .bottom, .left, .right jest takie samo jak zwroty korabl.top w sekcji 21.2, tylko teraz już nie jeden obiekt, ale cały dozwolony obszar ruchu.

Co gdzie się dziejeObszar
Liczą, Życia, MachająHUD-pas startowa (0 — HUD_HEIGHT)
Statek, wrogowie, kule, eksplozjePole gry (HUD_HEIGHT — dół ekranu)
WrogowieTuż nad szczytem pola gry
Ucieczka wroga (Rozdział 21.16)Przekroczenie dolnej granicy boiska
Statek jest ograniczony do pola gry, a nie do całego okna
Player.move() (Rozdział 21.11) zaciska pozycję w granicach self.playfield, nie całe okno SHIRINA × VYSOTA — w przeciwnym razie statek mógłby przejechać pod HUD i ukryć się za tekstem ustawy.