pygame - проблема с уничтожением всех спрайтов одним щелчком мыши - PullRequest
2 голосов
/ 27 апреля 2020

Я делаю стрелялку, в которой вы, как игрок, видите все поле битвы, и ваша задача - убивать врагов, которые бегут слева направо. Каждый щелчок мыши - это один выстрел, который должен убить одного врага, но когда в одном месте несколько врагов, все они убиваются одним щелчком мыши. Я использую pygame.sprite.Group для врагов.

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())

Есть ли способ убить один спрайт одним щелчком мыши, когда части их спрайтов имеют одинаковые координаты?

1 Ответ

2 голосов
/ 27 апреля 2020

Если вы просто хотите убить 1 врага, break l oop после того, как 1-й враг выстрелил:

for enemy in self.enemies:
    if enemy.rect.collidepoint(pos):
        enemy.decreaseHp(self.player.getDamage())
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...