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



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

alien_invasion.py
def _check_fleet_edges(self):
"""Реагирует на достижение пришельцем края экрана."""

for alien in self.aliens.sprites():
if alien.check_edges():

self.change_fleet_direction()
break
def _change_fleet_direction(self):
"""Опускает весь флот и меняет направление флота."""
for alien in self.aliens.sprites():

alien.rect.y += self.settings.fleet_drop_speed
self.settings.fleet_direction *= -1
Код 
_check_fleet_edges()
перебирает флот и вызывает 
check_edges()
для каж-
дого пришельца 

. Если 
check_edges()
возвращает 
True
, значит, пришелец на-
ходится у края и весь флот должен сменить направление, поэтому вызывается 


Уничтожение пришельцев
281
функция 
_change_fleet_direction()
и происходит выход из цикла 

. Функция 
_change_fleet_direction()
перебирает пришельцев и уменьшает высоту каждо-
го из них с использованием настройки 
fleet_drop_speed

; затем направление 
fleet_direction
меняется на противоположное, для чего текущее значение умно-
жается на –1. Строка, изменяющая направление, не является частью цикла 
for

Вертикальная позиция должна изменяться для каждого пришельца, но направление 
всего флота должно измениться однократно.
Изменения в 
_update_aliens()
:
alien_invasion.py
def _update_aliens(self):
"""
Проверяет, достиг ли флот края экрана,
с последующим обновлением позиций всех пришельцев во флоте.
"""
self._check_fleet_edges()
self.aliens.update()
Перед обновлением позиции каждого пришельца будет вызываться метод 
_check_
fleet_edges()
.
Если запустить игру сейчас, флот будет двигаться влево-вправо между краями 
экрана и опускаться каждый раз, когда он доберется до края. Теперь можно пере-
ходить к реализации уничтожения пришельцев и отслеживания пришельцев, стал-
кивающихся с кораблем или достигающих нижнего края экрана.


Достарыңызбен бөлісу:
1   ...   199   200   201   202   203   204   205   206   ...   334




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

    Басты бет