|
feat(engine): батч 2 — оживители статики + партиклы v2 + тайл-анимации
- anim/motion.ts: чистая sampleMotion — bob/sway/pulse/blink, композиция, округление bob до целого px; anim/SpriteMotion.ts — Pixi-адаптер (база снимается в конструкторе, живые params, detach, seed→фаза) - render/particleSim.ts (breaking): stepParticle → ParticleVisual (alpha/scale/rotation/tint); drag, wobble, fadeIn/fadeOut-хвост, scaleOverLife, colorOverLife; mergeEmitterOptions — чистое слияние (burst больше не мутирует опции); fix: rng.int инклюзивен — выход за границы colors - render/Particles.ts: текстурные частицы, colors/colorOverLife, spin, size-диапазон, max-лимит + пул спрайтов, blend 'add', setOptions, onFinish у oneShot - IsoDepthLayer.addFx(view, tx, ty, bias=0.5) — эффекты поверх актёра - IsometricTileMap.setTileAnimation(id, frames, fps) + update(dt) — один общий таймлайн на все клетки id (вода) - engine.fx (батч 1) — рецепт авто-тика в доке вместо ручного update - доки: render.md (частицы, addFx), anim.md (SpriteMotion, тайлы), recipes.md (ходьба/атмосфера/статика/вода/удар), maps.md - тесты: motion (9), particleSim переписан под v2 (итого 360) Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| docs/engine/anim.md |
|---|
| docs/engine/maps.md |
|---|
| docs/engine/recipes.md |
|---|
| docs/engine/render.md |
|---|
| packages/engine/src/anim/SpriteMotion.ts 0 → 100644 |
|---|
| packages/engine/src/anim/__tests__/motion.test.ts 0 → 100644 |
|---|
| packages/engine/src/anim/motion.ts 0 → 100644 |
|---|
| packages/engine/src/index.ts |
|---|
| packages/engine/src/map/IsometricTileMap.ts |
|---|
| packages/engine/src/render/IsoDepthLayer.ts |
|---|
| packages/engine/src/render/Particles.ts |
|---|
| packages/engine/src/render/__tests__/particleSim.test.ts |
|---|
| packages/engine/src/render/particleSim.ts |
|---|