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



Pdf көрінісі
бет187/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   183   184   185   186   187   188   189   190   ...   334
Байланысты:
Изучаем Python

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

Достарыңызбен бөлісу:
1   ...   183   184   185   186   187   188   189   190   ...   334




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

    Басты бет