tutoriel - python evenement souris




Pygame ne détecte que les événements de la souris, ne détecte pas les événements KEYDOWN (2)

Premièrement je doute que tu sois mais pygame n'enregistre les entrées que lorsque tu es concentré sur l'écran de pygame donc il y a ça. Je n'ai pas de réponse directe à votre question, désolé, mais j'ai ma solution ou mon travail. Parce que je n'aime pas le système d'événements normal, j'utilise pygame.key.get_pressed () ( https://www.pygame.org/docs/ref/key.html ) juste parce que je pense que ça a l'air mieux et plus lisible. C'est probablement juste une mauvaise habitude de la mienne si sooo .....

J'ai écrit le programme simple suivant qui devrait imprimer tous les événements détectés par pygame.event.get() .

import pygame, sys
from pygame.locals import *

display = pygame.display.set_mode((300, 300))
pygame.init()

while True:
    for event in pygame.event.get():
        print(event)
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

Mais quand j'exécute ceci, je n'ai que des événements de souris, et un événement KEYDOWN et KEYUP lorsque j'appuie deux fois sur caps-lock, en cours d'impression dans le terminal. Lorsque j'utilise d'autres touches, elles s'impriment uniquement sur le terminal comme si j'écrivais dans la fenêtre du terminal.

<Event(4-MouseMotion {'pos': (102, 15), 'buttons': (0, 0, 0),
 'rel': (-197, -284)})>
<Event(2-KeyDown {'unicode': '', 'scancode': 0, 'key': 301, 'm
 od': 8192})>
<Event(3-KeyUp {'key': 301, 'scancode': 0, 'mod': 0})>
wasd

J'utilise Mac OSX 10.12.1, python 3.5.2 et pygame 1.9.4.dev0.

Je suppose que je manque quelque chose directement, mais je n'ai rien trouvé de similaire en ligne. Toute aide serait très appréciée.


Si vous travaillez dans un virtualenv, n'utilisez pas la commande virtualenv .

Utilisez python3 -m venv .

Ensuite, installez pygame ( par exemple pip3 install hg+http://bitbucket.org/pygame/pygame ).

Voir ce fil pour plus de détails sur ce problème.





pygame