ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.11.2023
Просмотров: 171
Скачиваний: 6
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Рис. 11. Иерархия классов
Проект представлен следующими классами (см. рис. 11):
-
MenuScreen – представляет собой класс содержащий кнопки перехода на другие экраны приложения и выхода на рабочий экран устройства. -
GameScreen – ядро программы. Именно в этом классе просчитываются очки прохождения, проверяются различные состояния и обрабатывается большинство пользовательских прерываний. -
Player – представляет собой класс для единственного экземпляра объекта игрового персонажа, который может передвигаться по сторонам, прочитывать коллизию: прыгать и погибать. -
Enemy – является классом противника ближнего боя, представляет собой хаотично передвигающуюся черную дыру, которая наносит урон игровому персонажу и моментально заканчивает игру. -
PlatformFactory – представляет собой класс для «выброса» случайных платформ на игровое поле с неопределенной периодичностью. -
Greenplatform – реализация зеленной статичной платформы, на которой способны с заданной вероятностью появляться пружины. -
Blueplatform – реализация синей движущейся платформы. -
Brownplatform – реализация коричневой «прозрачной» платформы, сквозь которую проваливается игровой персонаж. После касания игроком, платформа исчезает, создавая новый объекта класса BrokeBrownPlatform. -
Brownplatform – класс, проигрывающий анимацию разрушения коричневой платформы. -
Spring – класс «пружины», может быть использована единожды, подобно коричневой платформе, после касания игрока, исчезает и создает объект класса UsedSpring. -
UsedSpring – класс «использованной пружины», отличающийся от взведенной пружины отсутствием свойств взаимодействия с игроком и другим спрайтом. -
Sprite – технический класс, определяющий внешний вид объектов на экране.
- 1 2 3 4 5 6
Возможности Pygame
Перед описанием состава классов проекта стоит упомянуть о возможностях Pygame, задействованных в проекте.
-
Pygame.display – объект для конфигурации окна, используется для установки заголовка приложения и разрешения, а также для смены кадров; -
Pygame.clock – объект игрового времени, позволяет установить фиксированное количество кадров в секунду; -
Pygame.transform – компонент для изменения положения/размеров спрайта; -
Pygame.image – объект для загрузки изображения как спрайта игрового элемента; -
Pygame.surface – объект отрисовки (экрана); -
Метод Pygame.event.get() – метод, позволяющий получить единичное событие в течение «игровой итерации» (пример: нажатие и отпускание кнопок); -
Метод Pygame.mouse.get_pos() – метод, позволяющий получить текущие координаты курсора мыши; -
Метод Pygame.draw.rect() – метод, позволяющий отрисовать тот или иной спрайт в квадратном коллайдере.
-
Описание классов
MenuScreen:
-
buttonSprite – внешний вид всех кнопок в меню; -
backgroundSprite –фоновое изображение; -
Nickname – вводимое имя пользователя; -
Startgame() – переход к запуску игры по нажатию соответствующей кнопки; -
Quit() – выход из игры посредством нажатия виртуальной кнопки на экране или нажатия на клавишу “Esc”;
GameScreen:
-
Nickname – введённое имя пользователя -
backgroundSprite –фоновое изображение; -
score – текущий результат забега; -
highscore – наилучший результат забега; -
platform- размещение на игровом поле платформ; -
player- размещение на игровом поле игрока; -
enemy- размещение на игровом поле врагов; -
spring- размещение на игровом поле пружин; -
BackToMenu() – функция возврата в главное меню посредством нажатия клавиши “Esc”, или проигрыша; -
EventLoop() – функция изменяющая игровое поле каждую единицу времени; -
LvlReset() – сброс и пересоздание объектов на игровом поле; -
CameraReset() – возвращение камеры к персонажу после его падения при повторных запусках;
Sprite:
-
filename – имя ли путь к файлу, содержащего изображение -
size- размеры изображение; -
center- указание центра изображения;
Player:
-
PlayerSprite –изображение персонажа; -
size – размер модели коллизии персонажа; -
jumpHight – высота прыжка; -
pos – координаты на игровом поле; -
Movelft() – движение налево путем нажатия соответствующих клавиш; -
MoveRight() – движение напрво путем нажатия соответствующих клавиш; -
CollisilnCheck() – проверка столкновений с другими объектами каждую единицу времени; -
Isdead() – проверка жив ли персонаж каждую единицу времени;
Enemy:
-
EnemySprite- изображение противника; -
speed – величина отклонения от текущей позиции при вызове функции Move(); -
size - размер модели коллизии противника; -
frequency – указнная частота появления в игре; -
spawn – функция появления врага на игровом поле; -
Move() – передвижения противника на заданное расстояние в случайном направлении, каждую единицу времени
DropFactory:
-
GreenFrequency – частота появления зеленных платформ на игровом поле; -
BlueFrequency – частота появления синих платформ на игровом поле; -
BrownFrequency – частота появления коричневых платформ на игровом поле; -
Size – размер платформ всех типов; -
Type – структура, определяющая тип создаваемой платформы; -
Spawn() – функция добавления одной из платформ на игровое поле; -
FrequencyChange() – динамичное изменение пропорций вероятностей появления различных платформ
GreenPlatform:
-
greenSprite – изображение платформы; -
pos – координаты на экране; -
springFreuency – вероятность расположения на ней пружины;
BluePlatform:
-
blueSprite – изображение платформы; -
pos – координаты на экране; -
movespeed – скорость движения платформы; -
moveslentgh – длина амплитуды движения платформы; -
Move() – движение платформы;
BrownPlatform:
-
brownSprite – изображение платформы; -
pos – координаты на экране; -
Break() – ломание при приземлении игрока; -
Disappear() – исчезновение платформы;
BrokeBrownPlatform:
-
brokeBrownSprite – изображение сломанной платформы; -
Fall() - анимация перемещения вниз; -
Disappear() – исчезновение платформы;
Spring:
-
size – размер пружины для срабатывания бонуса; -
ActiveSpringSprite – изображение взведенной пружины; -
Push() – откидывание игрока с заданным усилинием; -
Deactivating() – удаление объекта текущего класса и замена его объектом класса UsedSpring;
UsedSpring:
-
ActiveSpringSprite – изображение использованной пружины;
- 1 2 3 4 5 6