oujood.com

Détecter les mouvements et les clics : Événements de souris en Pygame

Dans ce tutorie apprenez comment : gérer les événements de la souris en Pygame et utiliser le module pygame.mouse pour obtenir des informations sur la position de la souris et le module pygame.event pour traiter les événements de la souris.

Gestion des événements de la souris en Pygame

Pour gérer les événements de la souris en Pygame, vous pouvez utiliser le module pygame.mouse pour obtenir des informations sur la position de la souris et le module pygame.event pour traiter les événements de la souris. Voici un exemple simple qui montre comment gérer les événements de la souris en Pygame :

Exemple :       Copier le code

import pygame
import sys

# Initialisation de Pygame
pygame.init()

# Définir la taille de la fenêtre
largeur, hauteur = 800, 600
fenetre = pygame.display.set_mode((largeur, hauteur))
pygame.display.set_caption("Gestion des événements de la souris")

# Boucle principale
while True:
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			pygame.quit()
			sys.exit()
		
		# Vérifier les événements de la souris
		elif event.type == pygame.MOUSEBUTTONDOWN:
			# Gestion des clics de souris
			x, y = pygame.mouse.get_pos()
			print(f"Clic à la position : ({x}, {y})")

			# Vous pouvez ajouter d'autres actions en fonction du bouton de la souris
			if event.button == 1:  # Clic gauche
				print("Clic gauche")
			elif event.button == 3:  # Clic droit
				print("Clic droit")

	# Mettre à jour l'affichage
	pygame.display.flip()

# Quitter Pygame
pygame.quit()

Événements de la souris en Pygame

En Pygame, plusieurs événements de la souris peuvent être détectés grâce au module pygame.event. Voici quelques-uns des événements de souris courants :

  1. pygame.MOUSEBUTTONDOWN : Cet événement est déclenché lorsqu'un bouton de la souris est enfoncé.
  2. pygame.MOUSEBUTTONUP : Cet événement est déclenché lorsqu'un bouton de la souris est relâché.
  3. pygame.MOUSEMOTION : Cet événement est déclenché lorsqu'il y a un mouvement de la souris.
  4. pygame.MOUSEWHEEL : Cet événement est déclenché lorsqu'une molette de la souris est déplacée.

Chacun de ces événements peut être capturé dans la boucle principale de votre programme Pygame en vérifiant le type d'événement dans la liste des événements retournée par pygame.event.get().

Exemple :       Copier le code

import pygame
import sys

# Initialisation de Pygame
pygame.init()

# Définir la taille de la fenêtre
largeur, hauteur = 800, 600
fenetre = pygame.display.set_mode((largeur, hauteur))
pygame.display.set_caption("Événements de la souris")

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

		elif event.type == pygame.MOUSEBUTTONDOWN:
			print("Bouton de la souris enfoncé")

		elif event.type == pygame.MOUSEBUTTONUP:
			print("Bouton de la souris relâché")

		elif event.type == pygame.MOUSEMOTION:
			print("Mouvement de la souris")

		elif event.type == pygame.MOUSEWHEEL:
			print("Molette de la souris déplacée")

	# Mettre à jour l'affichage
	pygame.display.flip()

Exemple : Changement de couleur avec Pygame

Voici un exemple pratique supplémentaire pour illustrer la gestion des événements de la souris en Pygame. Dans cet exemple, nous allons créer une petite application qui change la couleur de l'écran en fonction du bouton de la souris cliqué.

Exemple :       Copier le code

import pygame
import sys

# Initialisation de Pygame
pygame.init()

# Définir la taille de la fenêtre
largeur, hauteur = 800, 600
fenetre = pygame.display.set_mode((largeur, hauteur))
pygame.display.set_caption("Changement de couleur avec Pygame")

# Couleur de fond initiale
couleur_fond = (255, 255, 255)

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

		elif event.type == pygame.MOUSEBUTTONDOWN:
			# Gestion des clics de souris
			x, y = pygame.mouse.get_pos()

			# Changer la couleur en fonction du bouton de la souris
			if event.button == 1:  # Clic gauche
				couleur_fond = (255, 0, 0)  # Rouge
			elif event.button == 3:  # Clic droit
				couleur_fond = (0, 0, 255)  # Bleu
			elif event.button == 2:  # Clic molette
				couleur_fond = (0, 255, 0)  # vert

	# Remplir l'écran avec la nouvelle couleur
	fenetre.fill(couleur_fond)

	# Mettre à jour l'affichage
	pygame.display.flip()

Dans cet exemple, la couleur de fond (couleur_fond) est initialement définie sur blanc. Lorsqu'un clic de souris est détecté, la couleur de fond est modifiée en fonction du bouton de la souris cliqué. Un clic gauche change la couleur en rouge, et un clic droit la change en bleu.

Vous pouvez utiliser ce modèle pour créer des applications plus complexes en ajoutant des fonctionnalités basées sur les événements de la souris, comme le suivi du mouvement de la souris, la gestion de la molette, etc. Cela vous donne une base pour créer des interactions utilisateur dynamiques avec Pygame.




Voir aussi nos tutoriel :

fonction str_word_count, str_word_count

Compte le nombre de mots utilisés dans une chaîne

fonction get_html_translation_table, get_html_translation_table

Retourne la table de traduction des entités utilisée par htmlspecialchars et htmlentities

fonction chop, chop

Alias de rtrim