Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

111 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ChatGPT Image 19 мая 2026 г , 20_01_01

Mavericks Dunk Elite

markdown# DunkElite 🏀

Бесконечный аркадный баскетбол на Godot 4 — цепляй броски, наращивай комбо, лети вверх.


Что это такое?

DunkElite — вертикальный аркадный баскетбол, где ты бросаешь мяч из кольца в кольцо, а цепочка уходит бесконечно вверх. Цель простая: не промахиваться. Исполнение — уже сложнее.

Каждый бросок — это рогатка. Тянешь пальцем назад, отпускаешь — мяч летит. Предиктивная дуга из 12 точек (градиент от жёлтого к красному) показывает траекторию и силу удара. Пройди кольцо по центру, не задев обод — комбо растёт. Дай ему набраться: ×5 — светящийся лейбл, ×7 — взрыв частиц, у мяча появляется трейл, который меняется с каждым уровнем серии.

Кольца не стоят на месте. Они дрейфуют по синусоиде, наклоняются под углом, а иногда между тобой и целью появляется перекладина-блок.


Геймплей

Основной цикл

Мяч стоит на стартовом кольце. Тянешь — видишь дугу, отпускаешь — бросок. Гол засчитывается только при проходе сверху вниз через две сенсорные зоны кольца со скоростью ≥50. После гола камера ползёт вверх, следующее кольцо из пула четырёх встаёт на позицию.

Усложнение

  • Движущиеся кольца — 55% шанс, что следующее кольцо двигается по горизонтали, вертикали или диагонали
  • Наклонные кольца — 50% шанс наклона до ±17°
  • Блоки — после 4+ голов с вероятностью 1/3 между кольцами появляется перекладина
  • Stuck detection — если мяч простаивает 2.5 секунды и бросок невозможен — game over
  • Зона смерти — камера едет вверх и не ждёт; упал за нижний край — конец

Комбо

Чистые попадания (без касания обода) наращивают множитель. Очки за бросок = 1 + текущее комбо. На ×5 загорается лейбл, на ×7 — взрыв. Трейл мяча реагирует на уровень серии.

image image

Экономика и прогрессия

Весь прогресс хранится локально в user://save.dat, управляется через global.gd.

Валюта Как получить
⭐ Звёзды Подбор с колец (50% шанс, 1–3 штуки) + награды за челленджи
❤️ Сердца Покупка в магазине — используются для продолжения после поражения

Магазин (3 вкладки)

  • Мячи — 15 скинов, 100 звёзд за штуку
  • Фоны — 15 кортов (улица, ночной корт, космос и др.), 100 звёзд. Тёмные фоны автоматически перекрашивают UI-лейблы и иконки в светлые
  • Сердца — 1 сердце за 50 звёзд

Челленджи

Семь ступенчатых квестов с наградами в виде звёзд и сердец:

Челлендж Цель
Серия Комбо подряд (до ×30)
Снайпер Попаданий за игру (до 100)
Рекордсмен Побить рекорд N раз
Коллекционер Купить N скинов мячей
Феникс Рестарт после поражения N раз
Дальнобойщик Броски на максимальной силе N раз
Машина Комбо ×5 в N разных играх

Награды стакаются, клеймятся вручную.


Стек

  • Движок — Godot 4.4.1 stable
  • Язык — GDScript
  • Рендерер — GL Compatibility (требование Aurora OS)
  • Разрешение — 540×960, портрет

Структура проекта

project.godot # точка входа Godot, настройки проекта global.gd # автолоад — глобальное состояние, сохранение, челленджи

scenes/ ├── main_scene.tscn # единственная сцена игры, содержит всё ├── ring.tscn # кольцо со всеми зонами (GoalZoneTop, GoalZoneBottom, RimLeft, RimRight) └── ball.tscn # мяч с физикой и трейлом

scripts/ ├── main_scene.gd # главный скрипт — игровой цикл, UI, камера, пул колец ├── ring.gd # логика кольца: движение, наклон, звёзды, сетка ├── ball.gd # бросок, предиктивная дуга, stuck detection ├── ball_trail.gd # трейл мяча, меняется в зависимости от комбо ├── store_screen.gd # магазин — три вкладки, покупки, синхронизация └── global.gd # прогресс, звёзды, сердца, челленджи, save/load

assets/ ├── balls/ # текстуры мячей (default, ball1..11, cosmo, disco, earth) ├── backgrounds/ # фоны кортов (15 штук) ├── sounds/ # музыка, удары об обод, swish, звук броска └── ui/ # иконки, лейблы, частицы

Как устроен код global.gd (автолоад) Загружается первым при старте. Хранит всё между сессиями: звёзды, сердца, рекорд, купленные скины, прогресс челленджей. Сохраняет и читает user://save.dat. Любой скрипт обращается к нему напрямую через Global.stars, Global.hearts и т.д. main_scene.gd Самый большой скрипт. Отвечает за:

переключение экранов (_switch_screen() / _hide_all_ui()) — вся навигация по UI в одном месте игровой цикл: обработка гола, смена активного кольца, движение камеры вверх пул из 4 колец — active_ring, next_ring, hidden_ring, launch_ring. После каждого гола кольца ротируются, launch_ring всегда отделён от ротации генерацию сложности: вероятности движения, наклона, появления блока комбо, счёт, game over, continue через сердце

ring.gd Каждое кольцо знает своё состояние: движется или нет, под каким углом, есть ли блок. При инициализации main_scene.gd передаёт параметры следующего кольца. Гол определяется через две Area2D зоны — сначала мяч проходит GoalZoneTop, потом GoalZoneBottom, только тогда засчитывается. Скорость мяча при входе проверяется — менее 50 не считается. ball.gd Обрабатывает ввод: drag от мяча → вычисляет вектор силы → рисует 12 точек предиктивной дуги с градиентом цвет. При отпускании применяет импульс с асимметричными множителями (force.x *= 0.85, force.y *= 1.25). Следит за stuck detection — если мяч почти не двигается 2.5 секунды, посылает сигнал ball_stuck в main_scene.gd. store_screen.gd Три вкладки (мячи, фоны, сердца) с общим ScrollContainer. Активная вкладка синхронизируется при открытии магазина. Тёмные фоны определяются по флагу — при выборе такого фона main_scene.gd перекрашивает все UI-лейблы и иконки в светлые варианты.

Сборка проекта

Требования


Android

  1. Установи Android SDK и JDK 17
  2. В Godot: Project → Export → Android
  3. Укажи путь к keystore, alias и пароли
  4. Нажми Export Project

Aurora OS

  1. Установи Aurora SDK и Docker CE
  2. Скопируй экспортные шаблоны из релиза 4.4.1-auroraos-4 в: ~/.local/share/godot/export_templates/4.4.1.stable/
  3. Открой патченный Godot: Project → Export → Aurora OS
  4. Путь к RPM — только ASCII, без пробелов: /home/user/builds/dunkelite.rpm
  5. В поле Version вручную введи 1.0.0
  6. Нажми Export Project — сборка идёт через sfdk

О проекте

Разработано в рамках университетской практики.

Репозиторий: github.com/top-it-090304/Mavericks

About

Dunk Elite — минималистичная аркада, вдохновленная классическими баскетбольными флип-играми. Главная фишка - разработка под AuroraOS.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages