Functional sprite animation, tweens, and springs. State-object + free-function design (no classes) — tree-shakeable and trivially poolable. createSpriteAnimator advances frames against a SpriteSheet from @flare-engine/assets; tween / spring produce immutable state mutated by updateTween / updateSpring; TweenManager handles auto-removal on completion.
Install
bun add @flare-engine/animation
Usage
import { createSpriteAnimator, playAnimation, updateAnimator,
tween, updateTween } from '@flare-engine/animation';
import { easeOutQuad } from '@flare-engine/math';
import type { SpriteSheet } from '@flare-engine/assets';
declare const sheet: SpriteSheet;
declare const dt: number;
const anim = createSpriteAnimator(sheet);
playAnimation(anim, 'walk');
updateAnimator(anim, dt);
const t = tween(0, 100, 0.5, easeOutQuad);
const value = updateTween(t, dt);