|
Движок: playBuffer/createBuffer (sfx из памяти); игра — вариативные шаги
D2 работы D. AudioManager: общий запуск голоса вынесен в startSfx, playBuffer(key, buffer, opts) играет буфер из памяти в шину sfx, createBuffer(Float32Array, rate=22050) строит AudioBuffer (null до unlock). Чистые примитивы синтеза вынесены в @rpg/engine/tools/synth.mjs (без node-импортов — wav.mjs тянет node:fs и в браузере не соберётся); wav.mjs реэкспортирует их для тулз, WAV-файлы побайтно не изменились. Игра: systems/StepVariants.ts — 3 процедурных варианта шага на поверхность (сиды 253–256, полосы как в gen.mjs), AudioSystem.playStep(surface) вместо ключа+джиттера rate, LocationScene отдаёт поверхность. До unlock — файловый шаг. Гвард: @rpg/engine/tools/* — публичное API. Доки и план обновлены. Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| apps/game/src/scenes/LocationScene.ts |
|---|
| apps/game/src/systems/AudioSystem.ts |
|---|
| apps/game/src/systems/StepVariants.ts 0 → 100644 |
|---|
| apps/game/src/systems/__tests__/AudioSystem.test.ts |
|---|
| apps/game/src/wav-tools.d.ts 0 → 100644 |
|---|
| docs/engine/assets-audio-save.md |
|---|
| docs/engine/practices.md |
|---|
| docs/plan.md |
|---|
| packages/engine/src/audio/AudioManager.ts |
|---|
| packages/engine/src/audio/__tests__/AudioManager.test.ts |
|---|
| packages/engine/tools/__tests__/boundary.test.mjs |
|---|
| packages/engine/tools/boundary.mjs |
|---|
| packages/engine/tools/synth.mjs 0 → 100644 |
|---|
| packages/engine/tools/wav.mjs |
|---|