М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет217/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   213   214   215   216   217   218   219   220   ...   334
Байланысты:
Изучаем Python

alien_invasion.py
...
from game_stats import GameStats
from button import Button
Так как нам нужна только одна кнопка 
Play
, мы создадим ее в методе 
__init__()
класса 
AlienInvasion
. Этот код можно разместить в самом конце 
__init__()
:
alien_invasion.py
def __init__(self):
...
self._create_fleet()
# Создание кнопки Play.
self.play_button = Button(self, "Play")


296
Глава 14 • Ведение счета
Программа создает экземпляр 
Button
с текстом 
Play
, но не выводит кнопку на 
экран. Чтобы кнопка появилась на экране, мы вызовем метод 
draw_button()
кнопки 
в 
_update_screen()
:
alien_invasion.py
def _update_screen(self):
...
self.aliens.draw(self.screen)
# Кнопка Play отображается в том случае, если игра неактивна.
if not self.stats.game_active:
self.play_button.draw_button()
pygame.display.flip()
Чтобы кнопка 
Play
не закрывалась другими элементами экрана, мы отображаем 
ее после всех остальных игровых элементов, но перед переключением на новый 
экран. Код заключается в блок 
if
, чтобы кнопка отображалась только в неактивном 
состоянии игры.
Теперь при запуске Alien Invasion в центре экрана отображается кнопка 
Play
(рис. 14.1).
Рис. 14.1.
Кнопка Play выводится тогда, когда игра неактивна
Запуск игры
Чтобы при нажатии кнопки 
Play
запускалась новая игра, добавьте в конец 
_check_
events()
следующий блок 
elif
для отслеживания событий мыши над кнопкой:


Добавление кнопки Play
297


Достарыңызбен бөлісу:
1   ...   213   214   215   216   217   218   219   220   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет