Файл: Иук информатика и.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.11.2023

Просмотров: 163

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



Рис. 11. Иерархия классов

Проект представлен следующими классами (см. рис. 11):

  • MenuScreen – представляет собой класс содержащий кнопки перехода на другие экраны приложения и выхода на рабочий экран устройства.

  • GameScreen – ядро программы. Именно в этом классе просчитываются очки прохождения, проверяются различные состояния и обрабатывается большинство пользовательских прерываний.

  • Player – представляет собой класс для единственного экземпляра объекта игрового персонажа, который может передвигаться по сторонам, прочитывать коллизию: прыгать и погибать.

  • Enemy – является классом противника ближнего боя, представляет собой хаотично передвигающуюся черную дыру, которая наносит урон игровому персонажу и моментально заканчивает игру.

  • PlatformFactory представляет собой класс для «выброса» случайных платформ на игровое поле с неопределенной периодичностью.

  • Greenplatform – реализация зеленной статичной платформы, на которой способны с заданной вероятностью появляться пружины.

  • Blueplatform – реализация синей движущейся платформы.

  • Brownplatform – реализация коричневой «прозрачной» платформы, сквозь которую проваливается игровой персонаж. После касания игроком, платформа исчезает, создавая новый объекта класса BrokeBrownPlatform.

  • Brownplatform – класс, проигрывающий анимацию разрушения коричневой платформы.

  • Spring класс «пружины», может быть использована единожды, подобно коричневой платформе, после касания игрока, исчезает и создает объект класса UsedSpring.

  • UsedSpring – класс «использованной пружины», отличающийся от взведенной пружины отсутствием свойств взаимодействия с игроком и другим спрайтом.

  • Sprite – технический класс, определяющий внешний вид объектов на экране.



      1. 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() – метод, позволяющий отрисовать тот или иной спрайт в квадратном коллайдере.


      1. Описание классов



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. 1   2   3   4   5   6