- Инструкция по установке и запуску
- Введение
- Описание реализации
- Заключение
- Скачать и установить Python v3.9.x или выше
- Скачать последнюю версию игры из раздела релизов
- Установить зависимости с помощью pip
pip install -r requirements.txt
- Запустить игру
python PyBall.py
P.S. Вы можете ускорять или замедлять временя в игре с помощью клавиш - или =
PyBall - небольшая, но увлекательная игра, игровой процесс которой заключается в прохождении уровней, разрушая блоки различной прочности.
Примечание: на анимации здесь и далее могут наблюдаться артефакты, искажённые цвета и низкая частота кадров из-за особенностей формата gif. В игре таких проблем нет.
На каждом уровне игроку доступно некоторое количество шариков, которое определяется конкретным уровнем. Он можжет стрелять ими в блоки направление выстрела задаётся с помощью мыши. Шарики, попадая в блоки, снимают определённое количество прочности блока и отскакивают от него, соблюдая закон отражения. Блоки, когда теряют прочность, меняют свой цвет, а при достижении прочности 0 - разрушаются. После каждого хода блоки опускаются к ограничивающей линии. Игрок побеждает, если все блоки были разрушены, до того, как они достигнут ограничивающей линии. Пока шарики находятся в полёте игрок не может выстелить ещё раз. Особое внимание было уделено звуковым и визуальным эффектам. Присутствует возможность ускорять время.
- PyBall.py - главный файл игры
- requirements.txt - файл с перечнем зависимостей
- fonts - папка с используемыми в игре шрифтами, на данных момент необходим только один
- img - папка, содержащая изображения для спрайтов
- levels - папка, в которой находятся уровни игры
- sounds - содержит все звуки и музыку
- Data - папка с пользовательскими данными
- game_save.data - файл сохранения игрового прогресса, в зашифрованном виде
- secret.key - файл, содержащий уникальный ключ для расшифровки game_save.data
- LICENSES - папка, содержащая лицензии используемых ресурсов
- Простое добавление новых уровней
- Шифрование файла сохранения игрового процесса
- Простое добавление новых механик в будущем
- Все магические данные вынесены в виде констант
- Использование ООП и спрайтов
- GameMap - основной класс, управляющий игровым процессом
- Block и Ball - классы соответствующих названию спрайтов, описывающие их поведение
- TextRender - класс для более удобного размещения текста на экране
- BottomLine - класс, описывающий ограничивающую линию, является спрайтом
- AnimatedSprite - класс анимированного спрайта для добавления милой лисы на главный экран
- Button - класс кнопки, описывает её поведение и определяет логику взаимодействия, является спрайтом
- SimpleBall - класс, описывающий поведение декоративных шариков на главном экране
- Particle - класс для создания эффекта разрушения блока
- Image - класс, для добавления картинки на экран в виде спрайта
- Python 3.9.13
- PyGame 2.1.2
- Cryptography 39.0.1
- PhotoShop 2020
- Добавление новых уровней и механик, к примеру подбор новых шариков, бустеры и т.п.
- Добавление валюты и скинов для блоков и шариков
- Добавление настроек приложения прямо в его интерфейсе
- Мелкие улучшения