|
Анимация 4/4: шоукейс в игре — все акторы на SpriteAnimator, статика оживает
Унификация акторов на движковые аниматоры (три ручных таймера кадров больше не дублируются): - PlayerController: SpriteAnimator с клипами walk_*/idle_* — ушёл «застыл на произвольном кадре ходьбы»; - CombatViews: SpriteAnimator (спящим pause), hit/death-бёрсты — oneShot через engine.fx (закрыт баг «частицы стоят на месте»), новые опции drag/spin/scaleOverLife/colors; - FaunaSystem: SpriteAnimator (на ходу walk, в покое стоп-кадр). Оживление статики в LocationScene (всё тикается engine.fx, без ручного update): - вода — setTileAnimation (2 кадра, один таймлайн на все клетки); - мигание героя — SpriteMotion blink с живым duty (вместо ручного alpha); - NPC idle — кадры npcs_sheet (randomPhase по тайлу), атлас добавлен в BootScene, отдельные PNG NPC из списка ассетов убраны; - искры pickup-объектов — SpriteMotion pulse; - тёплые мотыльки — эмиттер blend:'add' + wobble + fadeIn; - кадры героя/фауны — через assets.animation() (анимации атласов из батча 3). Ограничение: sway для цветов/башни не вводился — это тайлы карты (спрайты внутри IsometricTileMap), SpriteMotion на них неприменим. Движок, попутные фиксы: - Updatables: разрушенные записи не тикаются (Pixi обнуляет transform — тик разрушенного SpriteMotion ронял весь тик и молча убивал игру после перехода между локациями) + тесты; - Engine.stepTicks: setManual(false)/resetTiming в finally — исключение в шаге больше не оставляет цикл в ручном режиме навсегда; - EmitterOptions.velocity опционален (в oneShot с radialSpeed не нужен); - SpriteAnimator/SpriteMotion: геттер destroyed — самозачистка из engine.fx. Доки: core.md (fx), anim.md (самозачистка), render.md (velocity), agent.md + practices.md (грабля «мост глотает throw шага» и приём диагностики). Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| apps/game/src/Game.ts |
|---|
| apps/game/src/scenes/BootScene.ts |
|---|
| apps/game/src/scenes/LocationScene.ts |
|---|
| apps/game/src/systems/PlayerController.ts |
|---|
| apps/game/src/systems/combat/CombatViews.ts |
|---|
| apps/game/src/systems/fauna/FaunaSystem.ts |
|---|
| docs/engine/agent.md |
|---|
| docs/engine/anim.md |
|---|
| docs/engine/core.md |
|---|
| docs/engine/practices.md |
|---|
| docs/engine/render.md |
|---|
| packages/engine/src/anim/SpriteAnimator.ts |
|---|
| packages/engine/src/anim/SpriteMotion.ts |
|---|
| packages/engine/src/core/Engine.ts |
|---|
| packages/engine/src/core/Updatables.ts |
|---|
| packages/engine/src/core/__tests__/Updatables.test.ts |
|---|
| packages/engine/src/render/Particles.ts |
|---|
| packages/engine/src/render/particleSim.ts |
|---|