Mini-Projet 5 : Pygame : Gestion des évènements ⚓︎
Lorsqu'un programme pygame est lancé, la variable interne pygame.event.get() reçoit en continu les évènements des périphériques gérés par le système d'exploitation.
Dans les exemples précédents, on a uniquement récupéré l'événement de type QUIT (clic sur la croix de fermeture de la fenêtre) pour stopper la boucle et terminer le programme:
for evenement in pygame.event.get():
if evenement.type == QUIT:
continuer = False
Nous allons maintenant nous intéresser aux évènements de type KEYDOWN (touche de clavier appuyée) ou de type MOUSEBUTTONDOWN (boutons de souris appuyé).
1. Événements clavier⚓︎
Structure de code
On contrôle si l'événement est de type KEYDOWN, puis on détermine l'instruction à exécuter en fonction de l'attribut key de l'événement (c'est-à-dire le code de la touche):
| 🐍 Script Python | |
|---|---|
1 2 3 4 | |
Remarques:
- la liste des codes des touches se retrouve ici : https://www.pygame.org/docs/ref/key.html
- rémanence des touches : si on veut que l'action associée à l'appui d'une touche se répète (par ex. toutes les 50 millisecondes) tant que la touche reste enfoncée, on utilise:
🐍 Script Python
pygame.key.set_repeat(50)
À vous de jouer
Écrire un programme qui déplace un personnage dans la fenêtre, piloté pour les quatre touches directionnelles du clavier.
2. Événements souris⚓︎
Structure de code
On contrôle cette fois que l'évènement est de type MOUSEBUTTONDOWN, puis on détermine l'instruction à exécuter en fonction de l'attribut button de l'événement (1 pour bouton gauche, 2 pour bouton droit, 3 à 5 pour la molette).
| 🐍 Script Python | |
|---|---|
1 2 3 4 | |
Remarque: on récupère le tuple des coordonnées de la souris par l'instruction pygame.event.get_pos().