v2 трек 12: сцены — SceneManager (стек, фейд out→in), меню поверх игры в демке
core/scene.ts — перенос схемы v1 без привязки к бэкенду: стек
push/pop/replace, переход фазами затухание → смена → проявление
(полный переход 2×duration), FadeOverlay {setAlpha} инъекцией;
параллельные переходы глотаются, enter новой сцены не ожидается,
render рисует весь стек. 10 юнит-тестов.

Демка: gameScene (tick+рендер) внизу стека, menuScene (DOM-панель,
мир под ней) сверху — старт в меню; Esc/мост gotoMenu — автосейв
в слот auto + меню, «Продолжить» грузит auto; мост sceneInfo/
gotoMenu/startGame. Гейт scenes.mjs — 11 проверок (фейд чёрный в
конце out, глотание параллельного перехода, продолжение с сейва).

Гейты демки входят в игру через startGame(false)+60 тиков (полный
переход). Уроки: CSS display:flex перебивает атрибут hidden
(#menu[hidden]{display:none}); полный переход = 48 тиков, не 24.

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent e711ca2 commit 239d3172ecf70eb9b19241506a690e87ba9589f4
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 2 days ago
Showing 14 changed files
View
docs/plan.md
View
v2/CLAUDE.md
View
v2/apps/demo/index.html
View
v2/apps/demo/src/main.ts
View
v2/apps/demo/tools/checks/dialogue.mjs
View
v2/apps/demo/tools/checks/hero.mjs
View
v2/apps/demo/tools/checks/inventory.mjs
View
v2/apps/demo/tools/checks/physics.mjs
View
v2/apps/demo/tools/checks/render.mjs
View
v2/apps/demo/tools/checks/save.mjs
View
v2/apps/demo/tools/checks/scenes.mjs 0 → 100644
View
v2/packages/engine/src/core/__tests__/scene.test.ts 0 → 100644
View
v2/packages/engine/src/core/scene.ts 0 → 100644
View
v2/packages/engine/src/index.ts