From 7daa435cf9998ee21b1d2dfca92ef0c55aba64c0 Mon Sep 17 00:00:00 2001 From: ArvindNagpal Date: Thu, 21 Nov 2019 13:11:05 +0300 Subject: [PATCH] Update keypress.py fixes a problem with non ascii systems (i.e. Ubuntu): old version couldn't process any letter keys at all! --- play/keypress.py | 143 +++++++++++++++++++++++------------------------ 1 file changed, 71 insertions(+), 72 deletions(-) diff --git a/play/keypress.py b/play/keypress.py index 049a1a7..e817e25 100644 --- a/play/keypress.py +++ b/play/keypress.py @@ -1,5 +1,7 @@ import pygame keypress_map = { + # use english names like 'space' instead of the space character ' ' + # there is no need of other keys here pygame.K_BACKSPACE: 'backspace', pygame.K_TAB: 'tab', pygame.K_CLEAR: 'clear', @@ -7,69 +9,69 @@ pygame.K_PAUSE: 'pause', pygame.K_ESCAPE: 'escape', pygame.K_SPACE: 'space', - pygame.K_EXCLAIM: '!', - pygame.K_QUOTEDBL: '"', - pygame.K_HASH: '#', - pygame.K_DOLLAR: '$', - pygame.K_AMPERSAND: '&', - pygame.K_QUOTE: "'", - pygame.K_LEFTPAREN: '(', - pygame.K_RIGHTPAREN: ')', - pygame.K_ASTERISK: '*', - pygame.K_PLUS: '+', - pygame.K_COMMA: ',', - pygame.K_MINUS: '-', - pygame.K_PERIOD: '.', - pygame.K_SLASH: '/', - pygame.K_0: '0', - pygame.K_1: '1', - pygame.K_2: '2', - pygame.K_3: '3', - pygame.K_4: '4', - pygame.K_5: '5', - pygame.K_6: '6', - pygame.K_7: '7', - pygame.K_8: '8', - pygame.K_9: '9', - pygame.K_COLON: ':', - pygame.K_SEMICOLON: ';', - pygame.K_LESS: '<', - pygame.K_EQUALS: '=', - pygame.K_GREATER: '>', - pygame.K_QUESTION: '?', - pygame.K_AT: '@', - pygame.K_LEFTBRACKET: '[', - pygame.K_BACKSLASH: '\\', - pygame.K_RIGHTBRACKET: ']', - pygame.K_CARET: '^', - pygame.K_UNDERSCORE: '_', - pygame.K_BACKQUOTE: '`', - pygame.K_a: 'a', - pygame.K_b: 'b', - pygame.K_c: 'c', - pygame.K_d: 'd', - pygame.K_e: 'e', - pygame.K_f: 'f', - pygame.K_g: 'g', - pygame.K_h: 'h', - pygame.K_i: 'i', - pygame.K_j: 'j', - pygame.K_k: 'k', - pygame.K_l: 'l', - pygame.K_m: 'm', - pygame.K_n: 'n', - pygame.K_o: 'o', - pygame.K_p: 'p', - pygame.K_q: 'q', - pygame.K_r: 'r', - pygame.K_s: 's', - pygame.K_t: 't', - pygame.K_u: 'u', - pygame.K_v: 'v', - pygame.K_w: 'w', - pygame.K_x: 'x', - pygame.K_y: 'y', - pygame.K_z: 'z', + # pygame.K_EXCLAIM: '!', + # pygame.K_QUOTEDBL: '"', + # pygame.K_HASH: '#', + # pygame.K_DOLLAR: '$', + # pygame.K_AMPERSAND: '&', + # pygame.K_QUOTE: "'", + # pygame.K_LEFTPAREN: '(', + # pygame.K_RIGHTPAREN: ')', + # pygame.K_ASTERISK: '*', + # pygame.K_PLUS: '+', + # pygame.K_COMMA: ',', + # pygame.K_MINUS: '-', + # pygame.K_PERIOD: '.', + # pygame.K_SLASH: '/', + # pygame.K_0: '0', + # pygame.K_1: '1', + # pygame.K_2: '2', + # pygame.K_3: '3', + # pygame.K_4: '4', + # pygame.K_5: '5', + # pygame.K_6: '6', + # pygame.K_7: '7', + # pygame.K_8: '8', + # pygame.K_9: '9', + # pygame.K_COLON: ':', + # pygame.K_SEMICOLON: ';', + # pygame.K_LESS: '<', + # pygame.K_EQUALS: '=', + # pygame.K_GREATER: '>', + # pygame.K_QUESTION: '?', + # pygame.K_AT: '@', + # pygame.K_LEFTBRACKET: '[', + # pygame.K_BACKSLASH: '\\', + # pygame.K_RIGHTBRACKET: ']', + # pygame.K_CARET: '^', + # pygame.K_UNDERSCORE: '_', + # pygame.K_BACKQUOTE: '`', + # pygame.K_a: 'a', + # pygame.K_b: 'b', + # pygame.K_c: 'c', + # pygame.K_d: 'd', + # pygame.K_e: 'e', + # pygame.K_f: 'f', + # pygame.K_g: 'g', + # pygame.K_h: 'h', + # pygame.K_i: 'i', + # pygame.K_j: 'j', + # pygame.K_k: 'k', + # pygame.K_l: 'l', + # pygame.K_m: 'm', + # pygame.K_n: 'n', + # pygame.K_o: 'o', + # pygame.K_p: 'p', + # pygame.K_q: 'q', + # pygame.K_r: 'r', + # pygame.K_s: 's', + # pygame.K_t: 't', + # pygame.K_u: 'u', + # pygame.K_v: 'v', + # pygame.K_w: 'w', + # pygame.K_x: 'x', + # pygame.K_y: 'y', + # pygame.K_z: 'z', pygame.K_DELETE: 'delete', # pygame.K_KP0: '', # pygame.K_KP1: '', @@ -132,15 +134,12 @@ # pygame.K_BREAK: '', # pygame.K_MENU: '', # pygame.K_POWER: '', - pygame.K_EURO: '€', + # pygame.K_EURO: '€', } def pygame_key_to_name(pygame_key_event): - english_name = keypress_map[pygame_key_event.key] - if not pygame_key_event.mod and len(english_name) > 1: - # use english names like 'space' instead of the space character ' ' - return english_name - return pygame_key_event.unicode - # pygame_key_event.unicode is how we get e.g. # instead of 3 on US keyboards when shift+3 is pressed. - # It also gives us capital letters and things like that. - + return keypress_map.get(pygame_key_event.key, pygame_key_event.unicode) + # use english names if key is in the dictionary + # use unicode characters in all the other cases including + # capital letters, # when shift+3 is pressed + # and so on. \ No newline at end of file