Obsługa wejścia: zdarzenia i przytrzymanie klawiszy
Jednorazowa akcja — zdarzenie. Ciągła akcja — sprawdzanie stanu. Pomieszanie ich — częste źródło błędów w zarządzaniu.
W sekcji 20.4 widziałeś już oba sposoby testowania klawiatury. A dokładniej, o Do jakiego rodzaju działania każdy z nich się nadaje i co się dzieje, jeśli się pomylą.
KEYDOWN uruchamia się raz w momencie naciśnięcia, a nie podczas trzymania klawisza. Jeśli powiązasz z nim ruch postaci, porusza się dokładnie o jeden krok na naciśnięcie i zawiesza się, nawet jeśli gracz nadal trzyma klawisz – aby poruszać się nieprzerwanie, musisz to zrobić pygame.key.get_pressed(), sprawdzany w każdej klatce.klavishi[pygame.K_SPACE] każdy kadr i strzelać przy każdym prawdziwym wartości, przy 60 FPS jedno przytrzymanie spacji na sekundę spowoduje około 60 strzałów — klawisz pozostaje wciśnięty cały czas. Dla jednorazowego działania przy wciśnięciu potrzebne jest właśnie zdarzenie KEYDOWNzamiast sprawdzać obecny stan.Mysz także jest podwójna
Mouse ma ten sam wybór: zdarzenie pygame.MOUSEBUTTONDOWN — dla
pojedynczego kliknięcia, a pygame.mouse.get_pressed() — dla weryfikacji,
Czy przycisk jest teraz przytrzymywany (przydatne na przykład do rysowania linii podczas trzymania przycisku myszy
jest trzymane). Aktualne współrzędne kursora są dostępne w dowolnym momencie za pomocą
pygame.mouse.get_pos().
Bridge do gamepada i ekranu dotykowego
Abstrakcja akcji gry z sekcji 20.11 ("prygok"
zamiast konkretnego klucza) opłaca się szczególnie tutaj: pod nim mogą równie dobrze
ukryć i KEYDOWN z odstępem, oraz przycisk padapygame.JOYBUTTONDOWN), i stuknąć w wirtualny przycisk na
Ekran dotykowy — Kod gry nie zmienia się ani o jedną linię.