Создание экземпляра Scoreboard

We use cookies. Read the Privacy and Cookie Policy

Чтобы вывести счет, мы создадим в alien_invasion.py экземпляр Scoreboard:

alien_invasion.py

...

from game_stats import GameStats

from scoreboard import Scoreboard

...

def run_game():

...

. .# Создание экземпляров GameStats и Scoreboard.

stats = GameStats(ai_settings)

(1) . .sb = Scoreboard(ai_settings, screen, stats)

...

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

while True:

...

(2) . . . .gf.update_screen(ai_settings, screen, stats, sb, ship, aliens,

. . . . . .bullets, play_button)

run_game()

Мы импортируем новый класс Scoreboard и создаем экземпляр sb после создания экземпляра stats (1) . Затем экземпляр sb передается методу update_screen(), чтобы счет можно было вывести на экран (2).

Для отображения счета метод update_screen() изменяется следующим образом:

game_functions.py

def update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,

. . . .play_button):

...

. .# Вывод счета.

. .sb.show_score()

. .

# Кнопка Play отображается в том случае, если игра неактивна.

if not stats.game_active:

play_button.draw_button()

# Отображение последнего прорисованного экрана.

pygame.display.flip()

Мы добавляем sb в список параметров, определяющих update_screen(), и вызываем show_score() непосредственно перед отображением кнопки Play.

Если запустить Alien Invasion сейчас, в правом верхнем углу экрана отображается счет 0. (Пока мы просто хотим убедиться в том, что счет отображается в нужном месте, прежде чем заниматься дальнейшей доработкой системы подсчета очков.) На рис. 14.2 изображено окно игры перед ее началом.

Рис. 14.2. Счет отображается в правом верхнем углу экрана

А теперь нужно организовать начисление очков за каждого пришельца!