Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
- Рефакторинг системы подсветки: вместо длительности в секундах теперь используется количество циклов (float). Добавлена таблица длительности циклов эффектов `LightCycleDurations` для пересчёта циклов в секунды. Префикс команд подсветки изменён с `85` на `86`. - `LightSequence`: добавлены `Pause()` / `Resume()` с запоминанием текущего шага последовательности; возобновление продолжает с сохранённой позиции. - `LightController`: добавлены `PauseAll()` / `ResumeAll()` для приостановки и восстановления подсветки и мигания шляпы при отключении/переподключении платы. Свойства `IsSequencePaused`, `IsBlinkPaused`. - `ComDeviceClient`: после успешной авторизации отправляются команды `890003` и `8600`. Добавлен запрос MAC-адреса через команду `06` (ответ — 12 hex-символов без префикса). Новое событие `ConnectionLost` при начале KeepAlive-реконнекта. - `ComHub`: очередь `_disconnectedQueue` с типом `DeviceDisconnectMessage` (DeviceId + Role + Mac) — сохраняет идентификатор устройства до его удаления из словаря. Подписка на `ConnectionLost`. Добавлен `GetDeviceMac()`. - `ComSystemManager`: при инициализации, если плата не обнаружена, подсветка сразу ставится на паузу. При отвале дефолтного устройства — `PauseAll()`, при переподключении — сравнение по MAC и роли через `IsSameDevice()`: та же плата → `ResumeAll()`, другая → `Blink()` с нуля. Добавлены событие `OnDeviceDisconnected` и метод `GetDeviceMac()`. - `COMInput`: при событии `OnDeviceDisconnected` сбрасываются все состояния кнопок через `ResetAllButtons()`, генерируя `buttonUp` для зажатых кнопок. Устраняет баг залипания управления после переподключения платы. - `GameManager`: расширена последовательность световых эффектов в меню (добавлены `DiagonalWave3`, `WaveUp`, `OrangeWave`); вызовы `SetLight` для game over/won переведены на float-циклы. - Обновлены `ARCHITECTURE.md` и `README.md`: переписана документация на актуальную структуру проекта и текущие возможности игры.
3.2 KiB
3.2 KiB
Данро (Danro)
Danro - это 2D-платформер на Unity с аркадным режимом запуска. Проект совмещает классический side-scrolling gameplay с логикой кредитов, баланса, внешнего COM-контроллера и призовой системой для инсталляций.
Актуальное состояние игры
Сейчас в проекте реализованы и подключены в Build Settings:
- главное меню (
MainMenu); - отдельная UI-сцена игрового интерфейса (
Level UI); - три игровых уровня:
1-1,1-2,1-3.
Игра уже включает:
- прохождение уровней с автоматическим переходом между сценами;
- систему жизней, монет и подсчета времени сессии;
- чекпоинты и респавн без полного сброса прогресса по уровню;
- врагов, ловушки, движущиеся и исчезающие платформы, трамплины, снаряды и интерактивные объекты;
- меню паузы, окно настроек, модальное окно выбора уровней;
- экраны победы и поражения;
- продолжение после поражения при достаточном балансе;
- аркадную механику кредитов, импульсов оплаты и бесплатного режима;
- окно статистики и админ-статистики;
- генерацию и показ QR-кодов на экране победы для призовой системы;
- поддержку клавиатуры и внешнего COM-управления.
Управление
Базовое управление с клавиатуры:
- движение:
A/Dили стрелки; - прыжок:
Space; - навигация по UI: через назначенные действия
Unity Input System.
Если игра используется в аркадной стойке, ввод может приходить с внешней платы через COM-подсистему. В этом режиме часть действий, кредиты, подсветка и выдача призов зависят от конфигурации установки.
Что важно для запуска и разработки
- Версия Unity проекта:
6000.3.8f1. - Основной стек:
Unity,C#,Input System,UGUI,Cinemachine,URP,VFX Graph. - Ключевая точка входа в runtime:
GameManager.
Документация
README.mdописывает проект с точки зрения текущих возможностей игры.ARCHITECTURE.mdсодержит краткий обзор структуры проекта.TECHDOC.mdсодержит подробную техническую документацию по архитектурным решениям, подсистемам и ограничениям.