2 votes

pygame - problème pour tuer tous les sprites avec un seul clic de souris

Je fais un jeu de tir, où vous, en tant que joueur, voyez tout le champ de bataille et votre tâche est de tuer les ennemis qui courent de gauche à droite. Chaque clic de souris est un tir unique, qui devrait tuer un seul ennemi, mais quand il y a plusieurs ennemis au même endroit, ils sont tous tués par un seul clic de souris. J'utilise pygame.sprite.Group pour les ennemis.

def events(self):
    for event in pg.event.get():
        if event.type == pg.QUIT:
            self.__running = False
        if event.type == pg.MOUSEBUTTONDOWN and event.button == 1:
            pos = pg.mouse.get_pos()
            if self.player.shot():
                for enemy in self.enemies:
                    if enemy.rect.collidepoint(pos):
                        enemy.decreaseHp(self.player.getDamage())

Existe-t-il un moyen de tuer un seul sprite avec un seul clic de souris lorsque des parties de leurs sprites ont les mêmes coordonnées ?

2voto

Rabbid76 Points 52493

Si vous ne voulez tuer qu'un seul ennemi, la fonction break la boucle après que le 1er ennemi ait été tué :

for enemy in self.enemies:
    if enemy.rect.collidepoint(pos):
        enemy.decreaseHp(self.player.getDamage())
        break

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X