Rozdział 20 · Tworzenie gier z Pygame

Sterujemy obiektem z klawiatury

Ruch to po prostu zmiana współrzędnych w każdej klatce; klawiaturę można przetestować na dwa różne sposoby.

Ruch obiektów

„Ruch”

peremeshenie.py
x_igroka += skorost_x
pygame.draw.rect(screen, CVET_IGROKA, (x_igroka, y_igroka, 40, 40))
Trzy prawdziwe okna obok siebie: Pole gracza przesuwa się w prawo z klatki na klatkę
Prawdziwe okno: to samo zmienna x_igroka w trzech kolejnych obrazach — ruch to zmiana współrzędnych.

Wydarzenia klawiszowe

Są dwa sposoby, aby dowiedzieć się o klawiaturze. Pierwszy — przez zdarzenia, jak w pygame.event.get() (wygodne przy jednorazowych akcjach, jak skok):

sobytiya_klavish.py
for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_SPACE:
            print(„Skacz!”)

Drugim sposobem jest sprawdzenie aktualnego stanu klawiszy w każdej klatce (wygodniej dla ciągły ruch, na przykład znak w lewo lub prawo):

sostoyanie_klavish.py
klavishi = pygame.key.get_pressed()
if klavishi[pygame.K_LEFT]:
    x_igroka -= 5
if klavishi[pygame.K_RIGHT]:
    x_igroka += 5
Którą metodę powinienem wybrać?
Wydarzenia (event.type == pygame.KEYDOWN) nadają się do działań „raz na naciśnięcie” — skok, strzał, pauza. get_pressed() nadaje się do ciągłego poruszania się, gdy klucz jest przytrzymany, co jest zgodne z kontrolą statku w rozdziale 21.
Praktyka: ruch i klawisze
Pygame otwiera natywne okno Python – uruchomione lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →