How to get keyboard input in PyGame ?
While using pygame module of Python, we sometimes need to use the keyboard input for various operations such as moving a character in a certain direction. To achieve this, we have to see all the events happening. Pygame keeps track of events that occur, which we can see with the events.get() function. In this article, we are going to discuss how we can get and use various keyboard inputs in pygame.
Detecting if a key is pressed:
Whenever a key is pressed or released, pygame.event() queue methods pygame.KEYDOWN and pygame.KEYUP events respectively.
For example, if we want to detect if a key was pressed, we will track if any event of pygame.KEYDOWN occurred or not and, accordingly, we will get to know if any key was pressed or not. The code for detecting if any key was pressed or not can be written as:
After running this code, it is seen that whenever a key has pressed a string “A key has been pressed” is printed on the terminal
Detecting which key was pressed:
To know which key was pressed, we have to check the event.key variable corresponds to which pygame keys. For example, the pygame key for the letter “A” is “K_a” then we will compare event.Key with K a and if it comes to be same that means the key “A” was pressed.
The various keyboard key and corresponding pygame keys are:
pygamekey Description K_BACKSPACE backspace K_TAB tab K_CLEAR clear K_RETURN return K_PAUSE pause K_ESCAPE escape K_SPACE space K_EXCLAIM exclaim K_HASH hash K_QUOTEDBL quotedbl K_DOLLAR dollar K_AMPERSAND ampersand K_QUOTE quote K_LEFTPAREN left parenthesis K_RIGHTPAREN right parenthesis K_ASTERISK asterisk K_PLUS plus sign K_COMMA comma K_MINUS minus sign K_PERIOD period K_SLASH forward slash 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 colon K_SEMICOLON semicolon K_LESS less-than sign K_EQUALS equals sign K_GREATER greater-than sign K_QUESTION question mark K_AT at K_LEFTBRACKET left bracket K_BACKSLASH backslash K_RIGHTBRACKET right bracket K_CARET caret K_UNDERSCORE underscore K_BACKQUOTE grave K_a,b,c…….z A to Z Alphabet K_DELETE delete K_KP0, K_KP1, K_KP2….K_KP9 keypad 0 to 9 K_KP_PERIOD keypad period K_KP_DIVIDE keypad divide K_KP_MULTIPLY keypad multiply K_KP_MINUS keypad minus K_KP_PLUS keypad plus K_KP_ENTER keypad enter K_KP_EQUALS keypad equals K_UP up arrow K_DOWN down arrow K_RIGHT right arrow K_LEFT Left arrow K_INSERT Insert K_HOME Home K_END End K_PAGEUP Page Up K_PAGEDOWN Page Down K_F1, K_F2, K_F3……K_F15 F1 to F15 K_NUMLOCK Numlock K_CAPSLOCK Capsloack K_SCROLLOCK Scrollock K_RSHIFT Right shift K_LSHIFT Left shift K_RCTRL right control K_LCTRL Left control K_RALT Right alt K_LALT Left alt K_RMETA right meta K_LMETA left meta K_LSUPER left Windows key K_RSUPER right Windows key K_MODE mode shift K_HELP Help K_PRINT Print Screen K_SYSREQ sysrq K_BREAK Break K_MENU Menu K_POWER Power K_EURO Euro
For example, let’s create a code to check if key “A” or “J” or “P” or “M” was pressed or not. The code for checking will be:
When we run this code and press the given keys the corresponding strings will be printed on the terminal.