Gérer les événements : principe général

La pile des événements

Pygame gère tous ses événements par le biais d'une file d'attente d'événements.

La méthode pygame.event.get() permet de récupérer les événements dans une liste et vide la file des événements.

La taille de la file étant limitée, il est nécessaire de lancer cette méthode à intervalles de temps réguliers pour ne pas perdre d'événement.

 

Pour déterminer si un événement est présent dans la liste, il faut parcourir la liste et comparer le type de tous les événements qu'elle contient à celui qui est recherché.

La méthode type() d'un événement permet de connaître son type.

Les principaux types d'événements sont :

Exemples

Fermeture de la fenêtre avec le bouton

C'est l'événement de type pygame.QUIT qui est généré lorsque l'utilisateur appuie sur le bouton de fermeture de la fenêtre.

import pygame
largeur = 800
hauteur = 600
fen = pygame.display.set_mode((largeur, hauteur))
continuer = True
while continuer :
    for evenement in pygame.event.get():
        if evenement.type == pygame.QUIT:
            continuer = False
pygame.display.quit()

Affichage du nom des événements qui se produisent

Ce programme utilise la méthode pygame.event.event_name(type) qui prend un type d'événement en paramètre et renvoie son nom.

import pygame
pygame.init()
largeur = 800
hauteur = 600
fen = pygame.display.set_mode((largeur, hauteur))
continuer = True
while continuer :
    for evenement in pygame.event.get():
        if evenement.type == pygame.QUIT:
            continuer = False
        print(pygame.event.event_name(evenement.type))
pygame.display.quit()