Вывод кнопки на экран

We use cookies. Read the Privacy and Cookie Policy

В программе класс Button используется для создания кнопки Play. Так как нам нужна только одна кнопка Play, мы создадим кнопку прямо в файле alien_invasion.py:

alien_invasion.py

...

from game_stats import GameStats

from button import Button

...

def run_game():

...

pygame.display.set_caption("Alien Invasion")

. .

. .# Создание кнопки Play.

(1) . .play_button = Button(ai_settings, screen, "Play")

...

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

while True:

...

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

. . . . . .play_button)

run_game()

Программа импортирует класс Button и создает экземпляр play_button (1) , после чего передает play_button функции update_screen(), чтобы кнопка появлялась при обновлении экрана (2).

Затем следует внести изменения в update_screen(), чтобы кнопка Play появлялась только в неактивном состоянии игры:

game_functions.py

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

. . . .play_button):

"""Обновляет изображения на экране и отображает новый экран."""

...

. .

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

. .if not stats.game_active:

. . . .play_button.draw_button()

. . . . . .

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

pygame.display.flip()

Чтобы кнопка Play не закрывалась другими элементами экрана, мы отображаем ее после всех остальных игровых элементов, но перед переключением на новый экран. Теперь при запуске Alien Invasion в центре экрана отображается кнопка Play (рис. 14.1).

Рис. 14.1. Кнопка Play выводится тогда, когда игра неактивна