/
Vibek
/
First_Game
Обзор
Документация
Войти
/
Vibek
/
First_Game
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
resources/audio_profile.py
51 строка
1 KB
Vibek
Добавлены звуки и реализован их менеджер
20 июн 2026, 19:28
20 июн 2026, 19:28
911d021
Код
Авторство
О чём код?
"""DTO аудио-манифеста (данные, без PyGame).""" from dataclasses import dataclass @dataclass(frozen=True) class AudioClipDef: """Описание одного звукового клипа на диске.""" path: str volume: float = 1.0 loop: bool = False @dataclass(frozen=True) class ClipByField: """Выбор клипа по полю payload события (например type=player|enemy).""" field: str values: dict[str, str] default: str | None = None @dataclass(frozen=True) class EventSoundBinding: """ Правило реакции SoundManager на событие EventBus. clip — один SFX; clip_by — SFX по значению поля в data; music — смена фонового трека; stop_music — остановить music-канал. """ clip: str | None = None clips: tuple[str, ...] | None = None clip_by: ClipByField | None = None music: str | None = None music_fade_ms: int = 500 stop_music: bool = False stop_music_fade_ms: int = 300 @dataclass(frozen=True) class AudioManifest: """Полный манифест звуков из assets/data/audio.json.""" master_volume: float sfx_volume: float music_volume: float clips: dict[str, AudioClipDef] event_map: dict[str, EventSoundBinding] state_music: dict[str, str]