Определение исполняемых частей игры
В файле alien_invasion.py необходимо определить части игры, которые должны выполняться всегда, и те части, которые должны выполняться только при активной игре:
alien_invasion.py
# Запуск основного цикла игры.
while True:
gf.check_events(ai_settings, screen, ship, bullets)
. .if stats.game_active:
ship.update()
gf.update_bullets(ai_settings, screen, ship, aliens, bullets)
. . . .gf.update_aliens(ai_settings, ship, aliens)
gf.update_screen(ai_settings, screen, ship, aliens, bullets)
В основном цикле всегда должна вызываться функция check_events(), даже если игра находится в неактивном состоянии. Например, программа все равно должна узнать о том, что пользователь нажал клавишу Q для завершения игры или щелкнул на кнопке закрытия окна. Также экран должен обновляться в то время, пока игрок решает, хочет ли он начать новую игру. Остальные вызовы функций должны происходить только при активной игре, потому что в то время, когда игра не активна, обновлять позиции игровых элементов не нужно.
В обновленной версии игра должна останавливаться после потери игроком последнего корабля.
Упражнения
13-6. Конец игры: в коде из упражнения 13-5 (с. 274) подсчитывайте, сколько раз игрок не поймал мяч. После трех промахов игра должна заканчиваться.