Аналог игры Doodle Jump на PyGame.
- Игрок управляет персонажем, прыгая по платформам, которые падают вниз.
- Продвигаясь наверх, игрок повышает свой счет.
- На пути игрока встречаются разные типы платформ, на которых нужно удержаться чтобы не упасть вниз.
- Несколько уровней, отличающихся по сложности и механикам!
Главная цель - выжить как можно дольше и забраться повыше!
Звук записать не удалось, но в игре он есть.
Стрелочками: ←→
Вы можете найти готовые исполняемые файлы на странице релизов в репозитории. Просто скачайте бинарник под вашу ОС и запустите
Если по какой-то причине вам не удается запустить бинарный файл, вы можете собрать приложение из исходного кода.
(все действия ниже выполняются в виртуальном окружении)
Требования:
- cpython версии от
3.11
(было протестировано на python3.11.11
и3.12.4
)
Чтобы собрать приложение из исходного кода, вам потребуется
- установить проект и его зависимости
pip install -e ".[build]"
pip install -e ".[lint]"
- (опционально) проверить проект - может занять время.
mypy
ruff check
- собрать бинарник
pyinstaller build.spec
- (или) запустить игру
funny_jump run game
- (или) запустить игру через файл
python src/funny_jump/bootstrap/entrypoint/py_game.py
- Игра не сможет запуститься если по какой-то причине на ПК недоступно звуковое устройство.
-
Все данные приложения будут лежать по пути ваш_пользователь/funny_jump
-
Запуск приложения из бинарника может быть долгим, это связано с особенностями работы pyinstaller.
-
Чтобы выйти из игры, закройте приложение (нажмите крестик у окна)
-
Счёт сохраняется только при выходе из уровня по клавише ESC, при закрытии окна он не сохранится, это не баг, а фича.
funny_jump/domain
- Содержит основные сущности приложения, доменную логику.
funny_jump/engine
- Фундаментальные концепции игр вынесенные в отдельный компонент. Тут находятся утилитарные функции обнаружения столкновений, менеджер анимаций и загрузчик ресурсов.
funny_jump/game
- Тут содержится вся логика работы с pygame - спрайты, анимации, движение и отрисовка обьектов на экране.
funny_jump/bootstrap
- Отвечает за сборку и запуск приложения
- Содержит точки входа в представления (
entrypoint/
)