Создание проекта игры
243
тора.) Объект окна присваивается атрибуту
self.screen
, что позволяет работать
с ним во всех методах класса.
Объект, присвоенный
self.screen
, называется
поверхностью
(surface). Поверхность
в Pygame представляет часть экрана, на которой отображается игровой элемент.
Каждый элемент в игре (например, пришелец или корабль игрока) представлен
поверхностью. Поверхность, возвращаемая
display.set_mode()
, представляет все
игровое окно. При активизации игрового цикла анимации эта поверхность авто-
матически перерисовывается при каждом проходе цикла, чтобы она обновлялась
всеми изменениями, обусловленными вводом от пользователя.
Процессом игры управляет метод
run_game()
. Метод содержит непрерывно выпол-
няемый цикл
while
, который содержит цикл событий и код, управляющий об-
новлениями экрана.
Событием
называется действие, выполняемое пользователем
во время игры (например, нажатие клавиши или перемещение мыши). Чтобы наша
программа реагировала на события, мы напишем
цикл событий
для
прослушивания
событий и выполнения соответствующей операции в зависимости от типа произо-
шедшего события. Этим циклом событий является цикл
for
в точке
.
Для получения доступа к событиям, обнаруженным Pygame, используется метод
pygame.event.get()
. Он возвращает список событий, произошедших с момента
последнего вызова этой функции. При любом событии клавиатуры или мыши от-
рабатывает цикл
for
. В этом цикле записывается серия команд
if
для обнаружения
и обработки конкретных событий. Например, когда игрок щелкает на кнопке за-
крытия игрового окна, программа обнаруживает событие
pygame.QUIT
и вызывает
метод
sys.exit()
для выхода из игры
.
Вызов
pygame.display.flip()
приказывает Pygame отобразить последний отрисо-
ванный экран. В данном случае при каждом выполнении цикла
while
будет отобра-
жаться пустой экран со стиранием старого экрана, так что виден будет только новый
экран. При перемещении игровых элементов вызов
pygame.display.flip()
будет по-
стоянно обновлять экран, отображая игровые элементы в новых позициях и скрывая
старые изображения; таким образом создается иллюзия плавного движения.
В последней строке файла создается экземпляр игры, после чего вызывается метод
run_game()
. Вызов
run_game()
заключается в блок
if
, чтобы он выполнялся только
при прямом вызове функции. Запустив файл
alien_invasion .py
, вы увидите пустое
окно Pygame.
Назначение цвета фона
Pygame по умолчанию создает черный экран, но это банально — выберем другой
цвет фона. Это делается в методе
__init__()
:
Достарыңызбен бөлісу: