282
Глава 13 •
Осторожно, пришельцы!
Метод
sprite.groupcollide()
сравнивает прямоугольник
rect
каждого элемента
с прямоугольником
rect
каждого элемента другой группы. В данном случае он
сравнивает прямоугольник каждого снаряда с прямоугольником каждого при-
шельца и возвращает словарь со снарядами и пришельцами, между которыми
обнаружены коллизии. Каждый ключ в словаре представляет снаряд, а ассоцииро-
ванное с ним значение — пришельца, в которого попал снаряд. (Этот словарь будет
использоваться в реализации системы подсчета очков в главе 14.)
Для проверки коллизий в конец функции
update_bullets()
добавляется следую-
щий код:
alien_invasion.py
def _update_bullets(self):
"""Обновляет позиции снарядов и удаляет старые пули."""
...
# Проверка попаданий в пришельцев.
# При обнаружении попадания удалить снаряд и пришельца.
collisions = pygame.sprite.groupcollide(
self.bullets, self.aliens, True, True)
Достарыңызбен бөлісу: