alien_invasion.py
def __init__(self):
...
pygame.display.set_caption("ALien Invasion")
# Создание экземпляров для хранения статистики
# и панели результатов.
self.stats = GameStats(self)
self.sb = Scoreboard(self)
...
Затем панель результатов выводится на экран в
_update_screen()
:
alien_invasion.py
def _update_screen(self):
...
self.aliens.draw(self.screen)
# Вывод информации о счете.
self.sb.show_score()
# Кнопка Play отображается в том случае, если игра неактивна.
...
Метод
show_score()
вызывается непосредственно перед отображением кнопки
Play
.
Подсчет очков
305
Если запустить Alien Invasion сейчас, в правом верхнем углу экрана отображается
счет 0. (Пока мы просто хотим убедиться в том, что счет отображается в нужном
месте, прежде чем заниматься дальнейшей доработкой системы подсчета очков.)
На рис. 14.2 изображено окно игры перед ее началом.
Рис. 14.2.
Счет отображается в правом верхнем углу экрана
А теперь нужно организовать начисление очков за каждого пришельца!
Обновление счета при уничтожении пришельцев
Чтобы на экране выводился оперативно обновляемый счет, мы будем обновлять
значение
stats.score
при каждом попадании в пришельца, а затем вызывать
prep_score()
для обновления изображения счета. Но сначала нужно определить,
сколько очков игрок будет получать за каждого пришельца:
settings.py
def initialize_dynamic_settings(self):
...
# Подсчет очков
self.alien_points = 50
Стоимость каждого пришельца в очках будет увеличиваться по ходу игры. Что-
бы значение сбрасывалось в начале каждой новой игры, мы задаем значение
в
initialize_dynamic_settings()
.
306
Достарыңызбен бөлісу: |