Wie bekomme ich Tastatureingaben in PyGame?
Bei der Verwendung des Pygame-Moduls von Python müssen wir manchmal die Tastatureingabe für verschiedene Vorgänge verwenden, z. B. das Bewegen eines Zeichens in eine bestimmte Richtung. Um dies zu erreichen, müssen wir alle Ereignisse sehen, die passieren. Pygame verfolgt auftretende Ereignisse, die wir mit der Funktion events.get() sehen können. In diesem Artikel werden wir diskutieren, wie wir verschiedene Tastatureingaben in Pygame erhalten und verwenden können.
Erkennen, ob eine Taste gedrückt wird:
Immer wenn eine Taste gedrückt oder losgelassen wird, verarbeitet die pygame.event()-Warteschlange die Ereignisse pygame.KEYDOWN bzw. pygame.KEYUP.
Wenn wir beispielsweise erkennen möchten, ob eine Taste gedrückt wurde, werden wir nachverfolgen, ob ein Ereignis von pygame.KEYDOWN aufgetreten ist oder nicht, und dementsprechend erfahren wir, ob eine Taste gedrückt wurde oder nicht. Der Code zum Erkennen, ob eine Taste gedrückt wurde oder nicht, kann wie folgt geschrieben werden:
Python
# importing pygame module import pygame # importing sys module import sys # initialising pygame pygame.init() # creating display display = pygame.display.set_mode((300, 300)) # creating a running loop while True: # creating a loop to check events that # are occuring for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # checking if keydown event happened or not if event.type == pygame.KEYDOWN: # if keydown event happened # than printing a string to output print("A key has been pressed")
Ausgabe:
Nach dem Ausführen dieses Codes ist zu sehen, dass immer dann, wenn eine Taste gedrückt wurde, eine Zeichenfolge „Eine Taste wurde gedrückt“ auf dem Terminal gedruckt wird
Erkennen, welche Taste gedrückt wurde:
Um zu wissen, welche Taste gedrückt wurde, müssen wir überprüfen, welche Variable event.key welchen Pygame-Tasten entspricht. Zum Beispiel ist die Pygame-Taste für den Buchstaben „A“ „K_a“, dann vergleichen wir event.Key mit K a und wenn es gleich ist, bedeutet dies, dass die Taste „A“ gedrückt wurde.
Die verschiedenen Tastaturtasten und die entsprechenden Pygame-Tasten sind:
pygamekey | Beschreibung |
---|---|
K_BACKSPACE | Rücktaste |
K_TAB | Tab |
K_LÖSCHEN | klar |
K_RETURN | Rückkehr |
K_PAUSE | Pause |
K_ESCAPE | Flucht |
K_SPACE | Platz |
K_EXCLAIM | ausrufen |
K_HASH | Hasch |
K_QUOTEDBL | zitiert |
K_DOLLAR | Dollar |
K_AMPERSAND | Et-Zeichen |
K_QUOTE | zitieren |
K_LEFTPAREN | linke Klammer |
K_RIGHTPAREN | rechte Klammer |
K_ASTERISK | Sternchen |
K_PLUS | Pluszeichen |
K_KOMMA | Komma |
K_MINUS | Minuszeichen |
K_PERIOD | Zeitraum |
K_SLASH | Schrägstrich |
K_0 | 0 |
K_1 | 1 |
K_2 | 2 |
K_3 | 3 |
K_4 | 4 |
K_5 | 5 |
K_6 | 6 |
K_7 | 7 |
K_8 | 8 |
K_9 | 9 |
K_COLON | Doppelpunkt |
K_SEMIKOLON | Semikolon |
K_LESS | Kleiner-als-Zeichen |
K_GLEICH | Gleichheitszeichen |
K_GREATER | Größer-als-Zeichen |
K_FRAGE | Fragezeichen |
K_AT | beim |
K_LEFTBRACKET | linke Klammer |
K_BACKSLASH | Backslash |
K_RECHTE HALTERUNG | rechte Klammer |
K_CARET | Pflege |
K_UNDERSCORE | unterstreichen |
K_BACKQUOTE | Grab |
K_a,b,c…….z | Alphabet von A bis Z |
K_LÖSCHEN | löschen |
K_KP0, K_KP1, K_KP2….K_KP9 | Tastatur 0 bis 9 |
K_KP_PERIOD | Tastatur Zeitraum |
K_KP_DIVIDE | Tastatur teilen |
K_KP_MULTIPLY | Tastatur multiplizieren |
K_KP_MINUS | Tastatur Minus |
K_KP_PLUS | Tastatur plus |
K_KP_ENTER | Tastatur eingeben |
K_KP_GLEICH | Tastatur gleich |
K_UP | Aufwärtspfeil |
K_DOWN | Pfeil nach unten |
K_RECHTS | rechter Pfeil |
K_LINKS | Linker Pfeil |
K_INSERT | Einfügung |
K_HOME | Heim |
K_END | Ende |
K_BILDAUF | Seite nach oben |
K_PAGEDOWN | Bild nach unten |
K_F1, K_F2, K_F3……K_F15 | F1 bis F15 |
K_NUMLOCK | Num Lock |
K_CAPSLOCK | Capslock |
K_SCROLLOCK | Scrollock |
K_RSHIFT | Verschiebung nach rechts |
K_LSHIFT | Linksverschiebung |
K_RCTRL | richtige Kontrolle |
K_LCTRL | Linker Regler |
K_RALT | Recht alt |
K_LALT | Linker Alt |
K_RMETA | richtige Meta |
K_LMETA | Linke Meta |
K_LSUPER | linke Windows-Taste |
K_RSUPER | rechte Windows-Taste |
K_MODUS | Moduswechsel |
K_HILFE | Hilfe |
K_PRINT | Bildschirm drucken |
K_SYSREQ | sysrq |
K_BREAK | Brechen |
K_MENÜ | Speisekarte |
K_POWER | Leistung |
K_EURO | Euro |
Lassen Sie uns zum Beispiel einen Code erstellen, um zu prüfen, ob die Taste „A“ oder „J“ oder „P“ oder „M“ gedrückt wurde oder nicht. Der Code für die Überprüfung lautet:
Python
# importing pygame module import pygame # importing sys module import sys # initialising pygame pygame.init() # creating display display = pygame.display.set_mode((300, 300)) # creating a running loop while True: # creating a loop to check events that # are occuring for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # checking if keydown event happened or not if event.type == pygame.KEYDOWN: # checking if key "A" was pressed if event.key == pygame.K_a: print("Key A has been pressed") # checking if key "J" was pressed if event.key == pygame.K_j: print("Key J has been pressed") # checking if key "P" was pressed if event.key == pygame.K_p: print("Key P has been pressed") # checking if key "M" was pressed if event.key == pygame.K_m: print("Key M has been pressed")
Ausgabe:
Wenn wir diesen Code ausführen und die angegebenen Tasten drücken, werden die entsprechenden Zeichenfolgen auf dem Terminal gedruckt.