Pygame 3: Les événements

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 {})>