Plan gry i przygotowanie projektów
Największa gra książki — wszystkie części są już znane z rozdziału 20, tutaj działają razem po raz pierwszy.
Ten projekt to największa gra w książce: statek gracza, wrogowie schodzący z góry,
strzelanie, niszczenie wrogów, zdobywanie punktów, życia, rosnący poziom trudności i pełne zakończenie gry
z restartem. Wszystkie elementy są już znane z rozdziału 20 — Rect,
colliderect(), sprite'y, stany gry delta time — oto są
pracuj razem po raz pierwszy, w tym samym projekcie edukacyjnym.
Importuj niezbędne moduły
import random
from dataclasses import dataclass
from enum import Enum, auto
from pathlib import Path
import pygame
dataclasses (rozdział 14) i enum (rozdział 18) tutaj nie są przypadkowe: opis klasy typu wroga i jawne stany gry — ten sam zabieg, co
SostoyanieIgry w sekcji 20.25.
Inicjalizuj wszystko, czego potrzebujesz
SHIRINA, VYSOTA = 480, 720
FPS = 60
pygame.init()
screen = pygame.display.set_mode((SHIRINA, VYSOTA))
pygame.display.set_caption(„Space Shooter”)
clock = pygame.time.Clock()
shrift = pygame.font.SysFont(None, 28)
pygame.font.SysFont(None, 28) tworzy domyślny rozmiar czcionki systemowej 28 — będziesz go potrzebować do tablicy wyników w sekcji 21.5. Pełna wersja końcowa używa jednocześnie trzech rozmiarów czcionek — zwykłej, dużej (tytuły ekranu) i małych (napisy).Plan projektu
Zanim napiszesz kod, warto zobaczyć mapę tego, co ostatecznie otrzymujesz. Wersja ostateczna (Rozdział 21.25) składa się z pięciu klas o jasnych obowiązkach:
Ta sekcja oraz sekcje 21.2–21.8 powtarzają historyczny porządek książki papierowej I celowo zaczynają się prościej niż w ostatecznej wersji — z typowymi funkcjami i listami, jak w rozdziale 20. W sekcji 21.9 książka wyjaśnia, jak i dlaczego ten kod rozwija się w architekturze klas.