alien_invasion.py
def __init__(self):
"""Инициализирует игру и создает игровые ресурсы."""
pygame.init()
self.settings = Settings()
❶
self.screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
❷
self.settings.screen_width = self.screen.get_rect().width
self.settings.screen_height = self.screen.get_rect().height
pygame.display.set_caption("Alien Invasion")
При создании экранной поверхности передается размер (0, 0) и параметр
pygame.
FULLSCREEN
. Эти значения приказывают Pygame вычислить размер окна, за-
полняющего весь экран. Так как ширина и высота экрана неизвестны заранее, эти
настройки обновляются после создания экрана
. Атрибуты
width
и
height
пря-
моугольника экрана используются для обновления объекта
settings
.
Если вам понравится, как игра выглядит или работает в полноэкранном режиме,
оставьте новые настройки. Если вы предпочитаете, чтобы игра работала в отдель-
В двух словах
259
ном окне, — вернитесь к исходной реализации с назначением конкретных размеров
экрана.
ПРИМЕЧАНИЕ
Прежде чем запускать игру в полноэкранном режиме, убедитесь в том,
что она закрывается при нажатии клавиши
Q
; в Pygame не существует стандартных
средств завершения игры в полноэкранном режиме .
В двух словах
В следующем разделе мы реализуем стрельбу, для чего нам потребуется новый файл
с именем
bullet .py
и изменения в некоторых уже имеющихся файлах. В настоящее
время программа состоит из трех файлов с разными классами и методами. Чтобы
вы четко представляли себе структуру проекта, кратко проанализируем каждый из
этих файлов перед добавлением новой функциональности.
alien_invasion .py
Главный файл программы
alien_invasion .py
содержит класс
AlienInvasion
. Этот
класс содержит ряд важных атрибутов, используемых в процессе игры: настройки
хранятся в
settings
, основная поверхность для вывода изображения хранится
в
screen
, а экземпляр
ship
тоже создается в этом файле. Также в
alien_invasion .py
содержится главный цикл игры — цикл
while
с вызовами
_check_events()
,
ship.
update()
и
_update_screen()
.
Метод
_check_events()
обнаруживает важные события (например, нажатия и от-
пускания клавиш) и обрабатывает все эти типы событий с использованием методов
_check_keydown_events()
и
_check_keyup_events()
. Пока эти методы управляют
движением корабля. Класс
AlienInvasion
также содержит метод
_update_screen()
,
который перерисовывает экран при каждом проходе основного цикла.
Файл
alien_invasion .py
— единственный файл, который должен запускаться для
игры в Alien Invasion. Все остальные файлы —
settings .py
и
ship .py
— содержат код,
который импортируется в этот файл.
settings .py
Файл
settings .py
содержит класс
Settings
. Этот класс содержит только метод
__init__()
, инициализирующий атрибуты, которые управляют внешним видом
и скоростью игры.
ship .py
Файл
ship .py
содержит класс
Ship
. В этом классе определен метод
__init__()
,
метод
update()
для управления позицией корабля и метод
blitme()
для вывода
260
Достарыңызбен бөлісу: |