Pygame-Tastaturlayouts vertauscht
Ich verwende Mac OS X 10.6 und habe Dvorak, US Extended und Norwegian im Auswahlmenü für Tastatureingaben, und US Extended wird von mir verwendet.
Wenn ich Pygame-Programme mit Tastatureingabe ausführe, scheint Pygame zu glauben, dass ich Dvorak verwendeungeachtet von dem, was tatsächlich ausgewählt ist.
Dies ist der Teil des Codes, der die Tastatureingabe übernimmt:
# Check for events
for event in pygame.event.get():
if event.type == KEYDOWN:
# Change the keyboard variables
if event.key == K_LEFT or event.key == ord('a'):
moveRight = False
moveLeft = True
if event.key == K_RIGHT or event.key == ord('d'):
moveLeft = False
moveRight = True
if event.key == K_UP or event.key == ord('w'):
moveDown = False
moveUp = True
if event.key == K_DOWN or event.key == ord('s'):
moveUp = False
moveDown = True
if event.type == KEYUP:
if event.key == K_ESCAPE:
pygame.quit()
sys.exit()
if event.key == K_LEFT or event.key == ord('a'):
moveLeft = False
if event.key == K_RIGHT or event.key == ord('d'):
moveRight = False
if event.key == K_UP or event.key == ord('w'):
moveUp = False
if event.key == K_DOWN or event.key == ord('s'):
moveDown = False
if event.key == ord('x'):
player.top = random.randint(0, WINDOWHEIGHT - player.height)
player.left = random.randint(0, WINDOWWIDTH - player.width)
Die Pfeiltasten funktionieren so, wie sie sollten, aber die WASD-Tasten sind auf eine Weise über die Tastatur verteilt, die mit Dvorak übereinstimmt. Auf beiden Layouts befindet sich "A" an derselben Stelle, "W" auf der Kommataste von QWERTY und so weiter. Wenn ich den Code ändere, um nach dem zu suchena
, e
, ,
undo
Stattdessen funktionieren die Dinge wie erwartet.
Wie kann ich Pygame dazu bringen, das richtige Layout zu verwenden?