Skip to content

pro100kamil/pygame_project

Repository files navigation

NINJA PLATFORMER

1. Название

Ninja Platformer

2. Авторы

Галлямов Камиль и Аскаров Эмиль

3. Идея

Динамичная игра-платформер с «околопиксельной» графикой, имеющая минималистичное и интуитивно понятное меню. С выбором главного персонажа и большим кол-вом разнообразных врагов и бонусов.

4. Реализация

Главным классом, над которым велась основная работа является класс главного героя. В нём прописаны коллизии со всеми предметами в игре, большее кол-во анимаций. Каждый главный персонаж имеет разные характеристики. Всего их – 4. Так же есть 8 врагов, некоторые из которых имеют особую механику. Существует 3 класса-буста: зелья, дающие прибавку в скорости или уроне, рюкзак с сюрикенами (оружием ГГ) и фрукты, которые исцеляют героя. И пара ловушек: пила (движется по платформам, не останавливаясь) и шипы.

5. Особенности:

  • Специальный класс-помощник по работе со звуком во всей игре
  • Искусственно созданная голова врага в виде прямоугольника (pygame.sprite.rect) – своеобразный хитбокс
  • Меню, предоставляющее возможности переключения или переигрывания уровня, выбора главного героя
  • Закрытая система уровней. Пока не пройдёшь первый, не попадёшь на второй
  • Стили для меню в формате JSON
  • Имитирование частиц пыли из-под ног персонажа
  • Специфический ИИ для врага-хамелеона, который движется в сторону героя
  • Двойной прыжок.

6. Описание технологий. Осуществлена обработка исключений, работа с файлами, изображениями, анимацией и звуком.

В ходе написания кода были использованы библиотеки (модули):

  • Pygame – непосредственно для реализации самой игры
  • Pyganim – удобная работа с анимациями
  • Pygame-gui – работа с меню
  • Os – работа с файловой системой (проверка на существование файла и т.д.)
  • Random – для выбора случайных бустов
  • Pygame.mixer – управление звуком
  • Collections – для удобного хранения данных

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages