Создание функции update_bullets()

We use cookies. Read the Privacy and Cookie Policy

Мы хотим, чтобы главный файл программы alien_invasion.py был как можно более простым, поэтому после написания и проверки кода управления пулями этот код можно переместить в модуль game_functions. Мы создадим новую функцию update_bullets() и добавим ее в конец game_functions.py:

game_functions.py

def update_bullets(bullets):

. ."""Обновляет позиции пуль и уничтожает старые пули."""

. .# Обновление позиций пуль.

bullets.update()

# Удаление пуль, вышедших за край экрана.

for bullet in bullets.copy():

if bullet.rect.bottom <= 0:

bullets.remove(bullet)

Код update_bullets() вырезается и вставляется из alien_invasion.py; единственным необходимым параметром функции является группа bullets.

Цикл while в alien_invasion.py снова выглядит просто:

alien_invasion.py

# Запуск основного цикла игры.

while True:

(1) gf.check_events(ai_settings, screen, ship, bullets)

(2)ship.update()

(3) . . . .gf.update_bullets(bullets)

(4)gf.update_screen(ai_settings, screen, ship, bullets)

В результате преобразования основной цикл содержит минимум кода, чтобы можно было легко прочитать имена функций и понять, что происходит в игре. Основной цикл проверяет ввод, полученный от игрока (1) , а затем обновляет позицию ­корабля (2) и всех выпущенных пуль (3). Затем обновленные позиции игровых элементов используются для вывода нового экрана в точке (4).