М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет207/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   203   204   205   206   207   208   209   210   ...   334
Байланысты:
Изучаем Python

alien_invasion.py
def _update_bullets(self):
...
# Уничтожение исчезнувших снарядов.
for bullet in self.bullets.copy():
if bullet.rect.bottom <= 0:
self.bullets.remove(bullet)
self._check_bullet_alien_collisions()
def _check_bullet_alien_collisions(self):
"""Обработка коллизий снарядов с пришельцами."""
# Удаление снарядов и пришельцев, участвующих в коллизиях.
collisions = pygame.sprite.groupcollide(
self.bullets, self.aliens, True, True)
if not self.aliens:
# Уничтожение существующих снарядов и создание нового флота.
self.bullets.empty()
self._create_fleet()
Мы создали новый метод 
check_bullet_alien_collisions()
для выявления колли-
зий между снарядами и пришельцами и для реакции на уничтожение всего флота. 
Это сделано для того, чтобы сократить длину 
_update_bullets()
и упростить 
дальнейшую разработку.
УПРАЖНЕНИЯ
13.5. Боковая стрельба-2:
после упражнения 12.6 «Боковая стрельба» программа была 
серьезно доработана. В этом упражнении вам предлагается усовершенствовать «Боковую 
стрельбу» до того же состояния, к которому была приведена игра Alien Invasion. Добавьте 
флот пришельцев и заставьте их перемещаться по горизонтали по направлению к кораблю. 
Другой вариант: напишите код, который размещает пришельцев в случайных позициях 
у правого края экрана, а затем заставляет их двигаться к кораблю. Также напишите код, 
который заставляет пришельцев исчезать при попадании в них.
Завершение игры
Какое удовольствие от игры, в которой невозможно проиграть? Если игрок не 
успеет сбить флот достаточно быстро, пришельцы уничтожат корабль при столк-


286
Глава 13 • Осторожно, пришельцы!
новении. При этом количество кораблей, используемых игроком, ограниченно, 
и корабль уничтожается, когда пришелец достигает нижнего края экрана. Игра 
завершается в тот момент, когда у игрока кончатся все корабли.
Обнаружение коллизий с кораблем
Начнем с проверки коллизий между пришельцами и кораблем, чтобы мы могли 
правильно обработать столкновения с пришельцами. Коллизии «пришелец — ко-
рабль» проверяются немедленно после обновления позиции каждого пришельца 
в 
AlienInvasion
:


Достарыңызбен бөлісу:
1   ...   203   204   205   206   207   208   209   210   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет