Dunk Rush
Dunk Rush — аркадная баскетбольная игра на Flutter + Flame, вдохновлённая Dunk Shot. Игрок оттягивает мяч жестом drag, задаёт направление броска и старается подряд попадать в следующие кольца. В текущей версии уже есть главное меню, внутриигровой магазин, сохранение прогресса и полноценное визуальное оформление на основе графических ассетов.
Что реализовано
- управление броском через
dragс предпросмотром траектории - физика полёта мяча с гравитацией, отскоками от кольца и вращением
- подсчёт очков и сохранение лучшего результата
- главное меню, экран паузы и экран окончания игры
- магазин кастомизации с выбором скинов мяча и фонов
- локальное сохранение прогресса в
game_progress.json - плавное смещение камеры после успешного попадания
- движущиеся кольца после достижения счёта
5 -
champion hoopи эффект конфетти при приближении к рекорду или его обновлении
Технологии и инструменты
FlutterFlameDartpath_providerCodex
Структура проекта
-
lib/app/- оболочка приложения, переключение экранов и навигация между меню, магазином и игрой -
lib/features/menu/- интерфейс главного меню -
lib/features/game/- игровой экран и внутриигровые оверлеи -
lib/features/shop/- сущности магазина, каталоги и интерфейс выбора -
lib/features/progress/- загрузка и сохранение рекорда и выбранной кастомизации -
lib/game/- основной цикл Flame-игры, мяч, кольца, эффекты и игровые правила -
lib/shared/- переиспользуемые виджеты и общие декоративные компоненты -
assets/images/- скины мячей, изображения колец и фоновые картинки -
aurora/- файлы упаковки платформы Aurora, которые сейчас присутствуют в репозитории
Запуск
Сначала установите зависимости:
flutter pub get
Затем запустите проект на доступном Flutter-target:
flutter run
Важно: в текущем состоянии рабочей директории отсутствуют стандартные платформенные папки Flutter, такие как android/, ios/, web/, macos/, linux/ и windows/. Если нужно запускать проект на одной из этих платформ, восстановите их из системы контроля версий или пересоздайте командой:
flutter create .
Управление
- Нажмите на мяч и оттяните его вниз или в сторону.
- Отпустите, чтобы выполнить бросок.
- Пунктирная линия показывает предполагаемую траекторию до запуска.
- Каждое чистое попадание добавляет
1очко. - Если мяч падает ниже экрана, раунд заканчивается и появляется экран окончания игры.
Сохранение прогресса
Игра сохраняет:
- лучший результат
- выбранный скин мяча
- выбранный фон
Данные записываются локально через path_provider в директорию данных приложения, в файл dunk_rush/game_progress.json.
Особенности геймплея
- По умолчанию игрок начинает со скином мяча
classicи без пользовательского фона. - Сейчас в магазине доступно
11скинов мяча и5вариантов фона. - После серии успешных попаданий кольца могут начать двигаться по горизонтали или по смешанной траектории.
- Если текущая попытка приближается к сохранённому рекорду, игра может заспавнить
champion hoopс более заметным наградным эффектом.
Проверка качества
Для быстрой локальной проверки:
flutter analyze