La gestion des événements joue un rôle primordiale dans la programmation en python/pygame et honnêtement dans la programmation en général. Pygame va nous passer des événements quand un bouton de la souris est cliqué, quand une touche du clavier est pressée etc. Nous pourrons aussi générer des événements nous même, par exemple un compteur de temps que nous communique que 10 secondes sont écoulées.
# Importons la librairie pygame import pygame # Initialisons la plateforme de jeux pygame.init() # creons une fenêtre de jeux gameDisplay = pygame.display.set_mode((800, 600)) # Notre titre pour le jeux... pygame.display.set_caption("Les evenements!") # Mettons-la à jour (visualizons-la) pygame.display.update() # Condition de sortie sortieDuJeux=False # Boucle de gestion des évenements, pour le moment nous les imprimons # La réference pour les evenements est ici: https://www.pygame.org/docs/ref/event.html while not sortieDuJeux : # Tous les evenements qui toucherons la fenetre pygame for event in pygame.event.get(): # nous imprimons l'objet evenement et pourrons l'inspecter print (event) # Gestion de l’événement "quit" if event.type == pygame.QUIT : sortieDuJeux = True # Sortons de Pygame pygame.quit() # Sortons du programme quit()
Et voila ce que nous obtiendrons dans la console du IDE de notre choix:
<Event(2-KeyDown {'unicode': 'h', 'scancode': 43, 'key': 104, 'mod': 0})> <Event(3-KeyUp {'mod': 0, 'scancode': 43, 'key': 104})> <Event(2-KeyDown {'unicode': 'e', 'scancode': 26, 'key': 101, 'mod': 0})> <Event(3-KeyUp {'mod': 0, 'scancode': 26, 'key': 101})> <Event(2-KeyDown {'unicode': 'l', 'scancode': 46, 'key': 108, 'mod': 0})> <Event(3-KeyUp {'mod': 0, 'scancode': 46, 'key': 108})> <Event(2-KeyDown {'unicode': 'l', 'scancode': 46, 'key': 108, 'mod': 0})> <Event(3-KeyUp {'mod': 0, 'scancode': 46, 'key': 108})> <Event(2-KeyDown {'unicode': 'o', 'scancode': 32, 'key': 111, 'mod': 0})> <Event(3-KeyUp {'mod': 0, 'scancode': 32, 'key': 111})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (1, -1), 'pos': (779, 13)})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (2, -1), 'pos': (781, 12)})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (2, -1), 'pos': (783, 11)})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (2, -1), 'pos': (785, 10)})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (2, -1), 'pos': (787, 9)})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (2, -1), 'pos': (789, 8)})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (2, -1), 'pos': (791, 7)})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (2, -1), 'pos': (793, 6)})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (3, -1), 'pos': (796, 5)})> <Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (3, -2), 'pos': (799, 3)})> <Event(1-ActiveEvent {'state': 1, 'gain': 0})> <Event(12-Quit {})>