Определение
исполняемых частей игры
291
# Пауза.
sleep(0.5)
else:
self.stats.game_active = False
Большая часть кода
_ship_hit()
осталась неизменной. Весь существующий код
был перемещен в блок
if
, который проверяет, что у игрока остался хотя бы один
корабль. Если корабли еще остаются, программа создает новый флот, делает паузу
и продолжает игру. Если же игрок потерял последний корабль, флаг
game_active
переводится в
состояние
False
.
Определение исполняемых частей игры
В файле
alien_invasion .py
необходимо определить части игры, которые должны вы-
полняться всегда, и те части, которые должны выполняться только при активной
игре:
alien_invasion.py
def run_game(self):
""" Запуск основного цикла игры."""
while True:
self._check_events()
if self.stats.game_active:
self.ship.update()
self._update_bullets()
self._update_aliens()
self._update_screen()
В основном цикле всегда должна вызываться функция
_check_events()
, даже если
игра находится в неактивном состоянии. Например, программа все равно должна
узнать о том, что пользователь нажал клавишу Q для завершения игры или щелк-
нул на кнопке закрытия окна. Также экран должен обновляться в то время, пока
игрок решает, хочет ли он начать новую игру. Остальные вызовы функций должны
происходить только при активной игре, потому что в то время, когда игра неактив-
на, обновлять позиции игровых элементов не нужно.
В обновленной версии игра должна останавливаться после потери игроком по-
следнего корабля.
Достарыңызбен бөлісу: