@Waffle47

Не корректно работают группы в pygame. Как исправить код, чтобы действие происходило с определённым предметом в группе?

Скинул все рабочие файлы в этой ссылке:
https://drive.google.com/drive/folders/10l6UgTeIUm...
Вообщем. Создаётся пуля после нажатия space (есть в controls.py) далее если выходит за экран - удаляется, а если попадает то создаётся анимация взрыва и после анимации он изчезает. Проблема в том, что сначала у меня первые пули делались взрывом сейчас же последние. Можете сами попробовать поиграть. У меня просто взрывается не та пуля. Добавил много комментариев и должно быть более менее понятно. Самые важные проблемы в controls.py т.к. там множество вещей обрабатывается ну и сами пули, которые меняют self.live на False и изменяют свою картинку.
Прошу о помощи!!! Помогите с багом!
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
@YariKartoshe4ka
Не правильно ищите коллизиию
controls.py:
for bullet in bullets.copy(): 
    if bullet.rect.left >= 1920: #удаление при выходе за экран
        bullets.remove(bullet)
    if pygame.sprite.groupcollide(bullets, enemys, False, False) and bullet.live == True: #создание взрыва после попадания
        pygame.sprite.groupcollide(bullets, enemys, False, True)
        bullet.animCount = 0
        bullet.live = False

Поскольку вы сами перебираете пульки, то надо использовать не groupcollide, а spritecollideany (где спрайт - перебираемая пулька, а группа - враги)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы