Maison > développement back-end > Tutoriel Python > Comment détecter les clics de souris sur les sprites Pygame ?

Comment détecter les clics de souris sur les sprites Pygame ?

DDD
Libérer: 2024-12-15 07:53:09
original
923 Les gens l'ont consulté

How to Detect Mouse Clicks on Pygame Sprites?

Détection des clics de souris sur les sprites Pygame

Dans Pygame, la détection des clics de souris sur les sprites est une tâche courante pour les jeux interactifs. Pour y parvenir, vous devrez effectuer quelques étapes dans la boucle principale de votre jeu :

  1. Récupérez tous les événements à l'aide de pygame.event.get() et recherchez l'événement MOUSEBUTTONDOWN ou MOUSEBUTTONUP.
  2. Pour l'événement MOUSEBUTTONUP, obtenez la position du curseur de la souris en utilisant pygame.mouse.get_pos().
  3. Créez une liste de tous les sprites situés sous le curseur de la souris en parcourant votre liste de sprites et en utilisant rect.collidepoint().

Voici un exemple d'extrait présentant ces étapes :

while ... # main loop
  # get all events
  ev = pygame.event.get()

  # proceed events
  for event in ev:
    # handle MOUSEBUTTONUP
    if event.type == pygame.MOUSEBUTTONUP:
      pos = pygame.mouse.get_pos()
      clicked_sprites = [s for s in sprites if s.rect.collidepoint(pos)]
      # do something with the clicked sprites...
Copier après la connexion

Vous pouvez également vérifier le curseur de la souris directement la position et l'état du bouton, mais cette approche nécessite une manipulation minutieuse des indicateurs pour éviter des actions répétées :

if pygame.mouse.get_pressed()[0] and mysprite.rect.collidepoint(pygame.mouse.get_pos()):
  print ("You have opened a chest!")
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal