Apparemment, sous Windows, Pygame s’attend à ce que vous ayez un clavier type Qwerty (sûrement américain d’ailleurs).

De ce fait, si vous taper sur la touche ‘a’, c’est bien le signal ‘K_q’ qui est envoyé à Pygame.

Pour que vous n’ayez pas à retrouver toutes les correspondances de touches, il existe une technique pour que votre code soit valable sur n’importe quelle plate-forme, et surtout beaucoup plus simple à rédiger.

Au lieu d’avoir du code comme par exemple

while True:
        if event.type == KEYDOWN:
            if event.key == K_q: # On utilise bien la touche 'a' mais c'est réinterprété comme la touche 'q'
                y -= 5
            if event.key == K_w: # On utilise bien la touche 'z' mais c'est réinterprété comme la touche 'w'
                y += 5

vous pouvez écrire

while True:
        if event.type == KEYDOWN:
            carac= event.dict['unicode'] # On récupère la touche tapée grâce à sa référence unicode et on va la comparer aux différents caractères possibles
            if carac == 'a':
                y -= 5
            if carac == 'z':
                y += 5

Et voilà !

Source :

http://openclassroom…message-7515473

Advertisements