Rozdział 20 · Tworzenie gier z Pygame

Tworzenie okna gry i pierwszej pętli gry

Pętla rozgrywki jest sercem każdej gry na Pygame: jest pisana ręcznie, klatka po klatce.

Tworzenie okna gry

Ekran Pygame — zwykła powierzchnia (Surface) dane Rozmiar:

igrovoj_ekran.py
import pygame

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption(„Moja pierwsza gra”)
Prawdziwe okno Pygame: ciemnoniebieskim ekranie 600×400 zalanym kolorem tła
Prawdziwe okno: ekran jest tworzony i wypełniony kolorami – już teraz prawdziwa, choć pusta, gra.

Pętla rozgrywki

W przeciwieństwie do Tkinter z jego mainloop(), w Pygame pętla gry jest pisana ręcznie — daje to pełną kontrolę nad tym, co dzieje się w każdej klatce:

igrovoj_cikl.py
clock = pygame.time.Clock()
rabotaet = True

while rabotaet:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            rabotaet = False

    pygame.display.flip()   # pokaż narysowaną klatkę
    clock.tick(60)          # nie więcej niż 60 fps

pygame.quit()
Po co potrzebny jest pygame.QUIT?
Brak obsługi zdarzeń pygame.QUIT (klikając krzyżyk w oknie) program nie wie, że użytkownik chce zamknąć grę, a okno przestaje reagować. Obsługa zdarzeń na początku każdej klatki pętli jest obowiązkową częścią każdego programu na Pygame.

Tło i czyszczenie ramek

screen.fill(цвет) maluje cały ekran kolorami (jak RGB, Rozdział 11) jest zazwyczaj pierwszym poleceniem w każdej klatce, w przeciwnym razie „Ślady”

zalivka_fona.py
CVET_FONA = (20, 20, 40)

screen.fill(CVET_FONA)
Prawdziwe okno: niebieski kwadrat bliżej prawej krawędzi ciemnego ekranu po serii klatek
Realne okno: Kwadrat przesuwa się w każdej klatce — ten sam ruch co w Sekcji 20.4, ale to sama pętla jest tu najważniejsza.
Praktyka: Pętla gry i wypełnienie tła
Pygame otwiera natywne okno Python – uruchomione lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →