Maison >développement back-end >Tutoriel Python >Comment détecter les clics de souris sur les sprites dans Pygame ?
Détection des clics de souris Pygame
Dans Pygame, la détection des clics de souris sur les sprites nécessite une inspection manuelle pendant la boucle principale. Voici comment implémenter cette fonctionnalité :
Approche de la boucle principale :
Exemple Code
while ...: ev = pygame.event.get() for event in ev: if event.type == pygame.MOUSEBUTTONUP: pos = pygame.mouse.get_pos() clicked_sprites = [s for s in sprites if s.rect.collidepoint(pos)] # Perform action on clicked sprites:
Remarque
: Pygame ne fournit pas de programmation basée sur les événements pour ce scénario.
Approche alternative:
handled = False while ...: if pygame.mouse.get_pressed()[0] and mysprite.rect.collidepoint(pygame.mouse.get_pos()) and not handled: print("You have opened a chest!") handled = pygame.mouse.get_pressed()[0]Bien que moins optimal, vous pouvez également vérifier la position du curseur de la souris et l'état des touches enfoncées. Cependant, cette approche nécessite une gestion supplémentaire des indicateurs pour empêcher l'impression continue :
Méthode de classe Sprite
:
class MySprite(Sprite): def is_clicked(self): return pygame.mouse.get_pressed()[0] and self.rect.collidepoint(pygame.mouse.get_pos())Vous pouvez également définir une méthode dans une classe MySprite personnalisée pour vérifier les clics de souris :
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!