@energy8platform/game-engine 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +318 -49
- package/dist/animation.cjs.js +191 -1
- package/dist/animation.cjs.js.map +1 -1
- package/dist/animation.d.ts +117 -1
- package/dist/animation.esm.js +192 -3
- package/dist/animation.esm.js.map +1 -1
- package/dist/audio.cjs.js +66 -16
- package/dist/audio.cjs.js.map +1 -1
- package/dist/audio.d.ts +4 -0
- package/dist/audio.esm.js +66 -16
- package/dist/audio.esm.js.map +1 -1
- package/dist/core.cjs.js +310 -84
- package/dist/core.cjs.js.map +1 -1
- package/dist/core.d.ts +60 -1
- package/dist/core.esm.js +311 -85
- package/dist/core.esm.js.map +1 -1
- package/dist/debug.cjs.js +36 -68
- package/dist/debug.cjs.js.map +1 -1
- package/dist/debug.d.ts +4 -6
- package/dist/debug.esm.js +36 -68
- package/dist/debug.esm.js.map +1 -1
- package/dist/index.cjs.js +1250 -251
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +386 -41
- package/dist/index.esm.js +1250 -254
- package/dist/index.esm.js.map +1 -1
- package/dist/ui.cjs.js +757 -1
- package/dist/ui.cjs.js.map +1 -1
- package/dist/ui.d.ts +208 -2
- package/dist/ui.esm.js +756 -2
- package/dist/ui.esm.js.map +1 -1
- package/dist/vite.cjs.js +65 -68
- package/dist/vite.cjs.js.map +1 -1
- package/dist/vite.d.ts +17 -23
- package/dist/vite.esm.js +66 -68
- package/dist/vite.esm.js.map +1 -1
- package/package.json +4 -5
- package/src/animation/SpriteAnimation.ts +210 -0
- package/src/animation/Tween.ts +27 -1
- package/src/animation/index.ts +2 -0
- package/src/audio/AudioManager.ts +64 -15
- package/src/core/EventEmitter.ts +7 -1
- package/src/core/GameApplication.ts +25 -7
- package/src/core/SceneManager.ts +3 -1
- package/src/debug/DevBridge.ts +49 -80
- package/src/index.ts +6 -0
- package/src/input/InputManager.ts +26 -0
- package/src/loading/CSSPreloader.ts +7 -33
- package/src/loading/LoadingScene.ts +17 -41
- package/src/loading/index.ts +1 -0
- package/src/loading/logo.ts +95 -0
- package/src/types.ts +4 -0
- package/src/ui/BalanceDisplay.ts +14 -0
- package/src/ui/Button.ts +1 -1
- package/src/ui/Layout.ts +364 -0
- package/src/ui/ScrollContainer.ts +557 -0
- package/src/ui/index.ts +4 -0
- package/src/viewport/ViewportManager.ts +2 -0
- package/src/vite/index.ts +83 -83
package/dist/animation.cjs.js
CHANGED
|
@@ -156,9 +156,20 @@ class Tween {
|
|
|
156
156
|
}
|
|
157
157
|
/**
|
|
158
158
|
* Wait for a given duration (useful in timelines).
|
|
159
|
+
* Uses PixiJS Ticker for consistent timing with other tweens.
|
|
159
160
|
*/
|
|
160
161
|
static delay(ms) {
|
|
161
|
-
return new Promise((resolve) =>
|
|
162
|
+
return new Promise((resolve) => {
|
|
163
|
+
let elapsed = 0;
|
|
164
|
+
const onTick = (ticker) => {
|
|
165
|
+
elapsed += ticker.deltaMS;
|
|
166
|
+
if (elapsed >= ms) {
|
|
167
|
+
pixi_js.Ticker.shared.remove(onTick);
|
|
168
|
+
resolve();
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
pixi_js.Ticker.shared.add(onTick);
|
|
172
|
+
});
|
|
162
173
|
}
|
|
163
174
|
/**
|
|
164
175
|
* Kill all tweens on a target.
|
|
@@ -185,6 +196,20 @@ class Tween {
|
|
|
185
196
|
static get activeTweens() {
|
|
186
197
|
return Tween._tweens.length;
|
|
187
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Reset the tween system — kill all tweens and remove the ticker.
|
|
201
|
+
* Useful for cleanup between game instances, tests, or hot-reload.
|
|
202
|
+
*/
|
|
203
|
+
static reset() {
|
|
204
|
+
for (const tw of Tween._tweens) {
|
|
205
|
+
tw.resolve();
|
|
206
|
+
}
|
|
207
|
+
Tween._tweens.length = 0;
|
|
208
|
+
if (Tween._tickerAdded) {
|
|
209
|
+
pixi_js.Ticker.shared.remove(Tween.tick);
|
|
210
|
+
Tween._tickerAdded = false;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
188
213
|
// ─── Internal ──────────────────────────────────────────
|
|
189
214
|
static ensureTicker() {
|
|
190
215
|
if (Tween._tickerAdded)
|
|
@@ -498,8 +523,173 @@ class SpineHelper {
|
|
|
498
523
|
}
|
|
499
524
|
}
|
|
500
525
|
|
|
526
|
+
/**
|
|
527
|
+
* Helper for creating frame-based animations from spritesheets.
|
|
528
|
+
*
|
|
529
|
+
* Wraps PixiJS `AnimatedSprite` with a convenient API for
|
|
530
|
+
* common iGaming effects: coin showers, symbol animations,
|
|
531
|
+
* sparkle trails, win celebrations.
|
|
532
|
+
*
|
|
533
|
+
* Cheaper than Spine for simple frame sequences.
|
|
534
|
+
*
|
|
535
|
+
* @example
|
|
536
|
+
* ```ts
|
|
537
|
+
* // From an array of textures
|
|
538
|
+
* const coinAnim = SpriteAnimation.create(coinTextures, {
|
|
539
|
+
* fps: 30,
|
|
540
|
+
* loop: true,
|
|
541
|
+
* });
|
|
542
|
+
* scene.addChild(coinAnim);
|
|
543
|
+
*
|
|
544
|
+
* // From a spritesheet with a naming pattern
|
|
545
|
+
* const sheet = Assets.get('effects');
|
|
546
|
+
* const sparkle = SpriteAnimation.fromSpritesheet(sheet, 'sparkle_');
|
|
547
|
+
* sparkle.play();
|
|
548
|
+
*
|
|
549
|
+
* // From a numbered range
|
|
550
|
+
* const explosion = SpriteAnimation.fromRange(sheet, 'explosion_{i}', 0, 24, {
|
|
551
|
+
* fps: 60,
|
|
552
|
+
* loop: false,
|
|
553
|
+
* onComplete: () => explosion.destroy(),
|
|
554
|
+
* });
|
|
555
|
+
* ```
|
|
556
|
+
*/
|
|
557
|
+
class SpriteAnimation {
|
|
558
|
+
/**
|
|
559
|
+
* Create an animated sprite from an array of textures.
|
|
560
|
+
*
|
|
561
|
+
* @param textures - Array of PixiJS Textures
|
|
562
|
+
* @param config - Animation options
|
|
563
|
+
* @returns Configured AnimatedSprite
|
|
564
|
+
*/
|
|
565
|
+
static create(textures, config = {}) {
|
|
566
|
+
const sprite = new pixi_js.AnimatedSprite(textures);
|
|
567
|
+
// Configure
|
|
568
|
+
sprite.animationSpeed = (config.fps ?? 24) / 60; // PixiJS uses speed relative to 60fps ticker
|
|
569
|
+
sprite.loop = config.loop ?? true;
|
|
570
|
+
// Anchor
|
|
571
|
+
if (config.anchor !== undefined) {
|
|
572
|
+
if (typeof config.anchor === 'number') {
|
|
573
|
+
sprite.anchor.set(config.anchor);
|
|
574
|
+
}
|
|
575
|
+
else {
|
|
576
|
+
sprite.anchor.set(config.anchor.x, config.anchor.y);
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
else {
|
|
580
|
+
sprite.anchor.set(0.5);
|
|
581
|
+
}
|
|
582
|
+
// Complete callback
|
|
583
|
+
if (config.onComplete) {
|
|
584
|
+
sprite.onComplete = config.onComplete;
|
|
585
|
+
}
|
|
586
|
+
// Auto-play
|
|
587
|
+
if (config.autoPlay !== false) {
|
|
588
|
+
sprite.play();
|
|
589
|
+
}
|
|
590
|
+
return sprite;
|
|
591
|
+
}
|
|
592
|
+
/**
|
|
593
|
+
* Create an animated sprite from a spritesheet using a name prefix.
|
|
594
|
+
*
|
|
595
|
+
* Collects all textures whose keys start with `prefix`, sorted alphabetically.
|
|
596
|
+
*
|
|
597
|
+
* @param sheet - PixiJS Spritesheet instance
|
|
598
|
+
* @param prefix - Texture name prefix (e.g., 'coin_')
|
|
599
|
+
* @param config - Animation options
|
|
600
|
+
* @returns Configured AnimatedSprite
|
|
601
|
+
*/
|
|
602
|
+
static fromSpritesheet(sheet, prefix, config = {}) {
|
|
603
|
+
const textures = SpriteAnimation.getTexturesByPrefix(sheet, prefix);
|
|
604
|
+
if (textures.length === 0) {
|
|
605
|
+
console.warn(`[SpriteAnimation] No textures found with prefix "${prefix}"`);
|
|
606
|
+
}
|
|
607
|
+
return SpriteAnimation.create(textures, config);
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* Create an animated sprite from a numbered range of frames.
|
|
611
|
+
*
|
|
612
|
+
* The `pattern` string should contain `{i}` as a placeholder for the frame number.
|
|
613
|
+
* Numbers are zero-padded to match the length of `start`.
|
|
614
|
+
*
|
|
615
|
+
* @param sheet - PixiJS Spritesheet instance
|
|
616
|
+
* @param pattern - Frame name pattern, e.g. 'explosion_{i}'
|
|
617
|
+
* @param start - Start frame index (inclusive)
|
|
618
|
+
* @param end - End frame index (inclusive)
|
|
619
|
+
* @param config - Animation options
|
|
620
|
+
* @returns Configured AnimatedSprite
|
|
621
|
+
*/
|
|
622
|
+
static fromRange(sheet, pattern, start, end, config = {}) {
|
|
623
|
+
const textures = [];
|
|
624
|
+
const padLength = String(end).length;
|
|
625
|
+
for (let i = start; i <= end; i++) {
|
|
626
|
+
const name = pattern.replace('{i}', String(i).padStart(padLength, '0'));
|
|
627
|
+
const texture = sheet.textures[name];
|
|
628
|
+
if (texture) {
|
|
629
|
+
textures.push(texture);
|
|
630
|
+
}
|
|
631
|
+
else {
|
|
632
|
+
console.warn(`[SpriteAnimation] Missing frame: "${name}"`);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
if (textures.length === 0) {
|
|
636
|
+
console.warn(`[SpriteAnimation] No textures found for pattern "${pattern}" [${start}..${end}]`);
|
|
637
|
+
}
|
|
638
|
+
return SpriteAnimation.create(textures, config);
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* Create an AnimatedSprite from texture aliases (loaded via AssetManager).
|
|
642
|
+
*
|
|
643
|
+
* @param aliases - Array of texture aliases
|
|
644
|
+
* @param config - Animation options
|
|
645
|
+
* @returns Configured AnimatedSprite
|
|
646
|
+
*/
|
|
647
|
+
static fromAliases(aliases, config = {}) {
|
|
648
|
+
const textures = aliases.map((alias) => {
|
|
649
|
+
const tex = pixi_js.Texture.from(alias);
|
|
650
|
+
return tex;
|
|
651
|
+
});
|
|
652
|
+
return SpriteAnimation.create(textures, config);
|
|
653
|
+
}
|
|
654
|
+
/**
|
|
655
|
+
* Play a one-shot animation and auto-destroy when complete.
|
|
656
|
+
* Useful for fire-and-forget effects like coin bursts.
|
|
657
|
+
*
|
|
658
|
+
* @param textures - Array of textures
|
|
659
|
+
* @param config - Animation options (loop will be forced to false)
|
|
660
|
+
* @returns Promise that resolves when animation completes
|
|
661
|
+
*/
|
|
662
|
+
static playOnce(textures, config = {}) {
|
|
663
|
+
const finished = new Promise((resolve) => {
|
|
664
|
+
config = {
|
|
665
|
+
...config,
|
|
666
|
+
loop: false,
|
|
667
|
+
onComplete: () => {
|
|
668
|
+
config.onComplete?.();
|
|
669
|
+
sprite.destroy();
|
|
670
|
+
resolve();
|
|
671
|
+
},
|
|
672
|
+
};
|
|
673
|
+
});
|
|
674
|
+
const sprite = SpriteAnimation.create(textures, config);
|
|
675
|
+
return { sprite, finished };
|
|
676
|
+
}
|
|
677
|
+
// ─── Utility ───────────────────────────────────────────
|
|
678
|
+
/**
|
|
679
|
+
* Get all textures from a spritesheet that start with a given prefix.
|
|
680
|
+
* Results are sorted alphabetically by key.
|
|
681
|
+
*/
|
|
682
|
+
static getTexturesByPrefix(sheet, prefix) {
|
|
683
|
+
const keys = Object.keys(sheet.textures)
|
|
684
|
+
.filter((k) => k.startsWith(prefix))
|
|
685
|
+
.sort();
|
|
686
|
+
return keys.map((k) => sheet.textures[k]);
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
|
|
501
690
|
exports.Easing = Easing;
|
|
502
691
|
exports.SpineHelper = SpineHelper;
|
|
692
|
+
exports.SpriteAnimation = SpriteAnimation;
|
|
503
693
|
exports.Timeline = Timeline;
|
|
504
694
|
exports.Tween = Tween;
|
|
505
695
|
//# sourceMappingURL=animation.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animation.cjs.js","sources":["../src/animation/Easing.ts","../src/animation/Tween.ts","../src/animation/Timeline.ts","../src/animation/SpineHelper.ts"],"sourcesContent":[null,null,null,null],"names":["Ticker"],"mappings":";;;;AAEA;;;;AAIG;AACI,MAAM,MAAM,GAyBf;AACF,IAAA,MAAM,EAAE,CAAC,CAAS,KAAK,CAAC;IAExB,UAAU,EAAE,CAAC,CAAS,KAAK,CAAC,GAAG,CAAC;AAChC,IAAA,WAAW,EAAE,CAAC,CAAS,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvC,IAAA,aAAa,EAAE,CAAC,CAAS,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1E,WAAW,EAAE,CAAC,CAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACrC,IAAA,YAAY,EAAE,CAAC,CAAS,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5C,cAAc,EAAE,CAAC,CAAS,KACxB,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AAEnE,IAAA,WAAW,EAAE,CAAC,CAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACzC,IAAA,YAAY,EAAE,CAAC,CAAS,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAChD,IAAA,cAAc,EAAE,CAAC,CAAS,KACxB,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAEvD,UAAU,EAAE,CAAC,CAAS,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1D,IAAA,WAAW,EAAE,CAAC,CAAS,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,aAAa,EAAE,CAAC,CAAS,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AAE9D,IAAA,UAAU,EAAE,CAAC,CAAS,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACnE,IAAA,WAAW,EAAE,CAAC,CAAS,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACpE,aAAa,EAAE,CAAC,CAAS,KACvB,CAAC,KAAK;AACJ,UAAE;UACA,CAAC,KAAK;AACN,cAAE;cACA,CAAC,GAAG;AACJ,kBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG;AAC7B,kBAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;AAE7C,IAAA,UAAU,EAAE,CAAC,CAAS,KAAI;QACxB,MAAM,EAAE,GAAG,OAAO;AAClB,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;AACjB,QAAA,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;IACpC,CAAC;AACD,IAAA,WAAW,EAAE,CAAC,CAAS,KAAI;QACzB,MAAM,EAAE,GAAG,OAAO;AAClB,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;QACjB,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;AACD,IAAA,aAAa,EAAE,CAAC,CAAS,KAAI;QAC3B,MAAM,EAAE,GAAG,OAAO;AAClB,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK;QACrB,OAAO,CAAC,GAAG;AACT,cAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI;AACnD,cAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IACtE,CAAC;AAED,IAAA,aAAa,EAAE,CAAC,CAAS,KAAI;QAC3B,MAAM,EAAE,GAAG,MAAM;QACjB,MAAM,EAAE,GAAG,IAAI;AACf,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AAAE,YAAA,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AAAE,YAAA,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;AACtD,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;AAAE,YAAA,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM;AAC3D,QAAA,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ;IAC9C,CAAC;AAED,IAAA,YAAY,EAAE,CAAC,CAAS,KAAK,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;IAE5D,eAAe,EAAE,CAAC,CAAS,KACzB,CAAC,GAAG;AACF,UAAE,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;AAC1C,UAAE,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAE/C,IAAA,cAAc,EAAE,CAAC,CAAS,KAAI;QAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC;QAC5B,OAAO,CAAC,KAAK;AACX,cAAE;cACA,CAAC,KAAK;AACN,kBAAE;AACF,kBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC;IACjE,CAAC;AAED,IAAA,aAAa,EAAE,CAAC,CAAS,KAAI;QAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC;QAC5B,OAAO,CAAC,KAAK;AACX,cAAE;cACA,CAAC,KAAK;AACN,kBAAE;AACF,kBAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IACnE,CAAC;;;AClGH;;;;;;;;;;;;;;;;;AAiBG;MACU,KAAK,CAAA;AACR,IAAA,OAAO,OAAO,GAAkB,EAAE;AAClC,IAAA,OAAO,YAAY,GAAG,KAAK;AAEnC;;;;;;;;AAQG;IACH,OAAO,EAAE,CACP,MAAW,EACX,KAA6B,EAC7B,QAAgB,EAChB,MAAuB,EACvB,QAAqC,EAAA;AAErC,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;;YAE7B,MAAM,IAAI,GAA2B,EAAE;YACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACpC,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC;YAC5C;AAEA,YAAA,MAAM,KAAK,GAAgB;gBACzB,MAAM;gBACN,IAAI;AACJ,gBAAA,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE;gBAChB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC/B,gBAAA,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,WAAW;AACpC,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,KAAK,EAAE,CAAC;gBACR,OAAO;gBACP,QAAQ;aACT;AAED,YAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,KAAK,CAAC,YAAY,EAAE;AACtB,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,OAAO,IAAI,CACT,MAAW,EACX,KAA6B,EAC7B,QAAgB,EAChB,MAAuB,EACvB,QAAqC,EAAA;;QAGrC,MAAM,EAAE,GAA2B,EAAE;QACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACpC,YAAA,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC;AACxC,YAAA,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C;AAEA,QAAA,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;IACzD;AAEA;;AAEG;AACH,IAAA,OAAO,MAAM,CACX,MAAW,EACX,SAAiC,EACjC,OAA+B,EAC/B,QAAgB,EAChB,MAAuB,EACvB,QAAqC,EAAA;;QAGrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACxC,YAAA,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAChD;AAEA,QAAA,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;IAC9D;AAEA;;AAEG;IACH,OAAO,KAAK,CAAC,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1D;AAEA;;AAEG;IACH,OAAO,YAAY,CAAC,MAAW,EAAA;AAC7B,QAAA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAI;AAC1C,YAAA,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE;gBACxB,EAAE,CAAC,OAAO,EAAE;AACZ,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,OAAO,OAAO,GAAA;AACZ,QAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;YAC9B,EAAE,CAAC,OAAO,EAAE;QACd;AACA,QAAA,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;IAC1B;;AAGA,IAAA,WAAW,YAAY,GAAA;AACrB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM;IAC7B;;AAIQ,IAAA,OAAO,YAAY,GAAA;QACzB,IAAI,KAAK,CAAC,YAAY;YAAE;AACxB,QAAA,KAAK,CAAC,YAAY,GAAG,IAAI;QACzBA,cAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IAC/B;AAEQ,IAAA,OAAO,IAAI,GAAG,CAAC,MAAc,KAAU;AAC7C,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO;QACzB,MAAM,SAAS,GAAkB,EAAE;AAEnC,QAAA,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;AAC9B,YAAA,EAAE,CAAC,OAAO,IAAI,EAAE;AAEhB,YAAA,IAAI,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK;gBAAE;YAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;;AAGxB,YAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBACpC,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;gBACtB,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC;gBACvC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC;YAC1C;AAEA,YAAA,EAAE,CAAC,QAAQ,GAAG,GAAG,CAAC;AAElB,YAAA,IAAI,GAAG,IAAI,CAAC,EAAE;AACZ,gBAAA,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB;QACF;;AAGA,QAAA,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;YAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,IAAI,GAAG,KAAK,EAAE;gBAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5C,EAAE,CAAC,OAAO,EAAE;QACd;;AAGA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,EAAE;YACpDA,cAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAChC,YAAA,KAAK,CAAC,YAAY,GAAG,KAAK;QAC5B;AACF,IAAA,CAAC;AAED;;AAEG;AACK,IAAA,OAAO,WAAW,CAAC,MAAW,EAAE,GAAW,EAAA;QACjD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5B,IAAI,GAAG,GAAG,MAAM;AAChB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACzC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB;AACA,QAAA,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C;AAEA;;AAEG;AACK,IAAA,OAAO,WAAW,CAAC,MAAW,EAAE,GAAW,EAAE,KAAa,EAAA;QAChE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5B,IAAI,GAAG,GAAG,MAAM;AAChB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACzC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB;AACA,QAAA,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK;IACtC;;;ACvNF;;;;;;;;;;;;;;;;;;;;;;AAsBG;MACU,QAAQ,CAAA;IACX,MAAM,GAAmB,EAAE;IAC3B,QAAQ,GAAG,KAAK;IAChB,UAAU,GAAG,KAAK;AAE1B;;AAEG;AACH,IAAA,EAAE,CACA,MAAW,EACX,KAA6B,EAC7B,QAAgB,EAChB,MAAuB,EAAA;AAEvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,YAAA,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;AACpD,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;AACH,IAAA,IAAI,CACF,MAAW,EACX,KAA6B,EAC7B,QAAgB,EAChB,MAAuB,EAAA;AAEvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,YAAA,EAAE,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;AACtD,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;AACH,IAAA,KAAK,CAAC,EAAU,EAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,EAAE,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AAC1B,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;AACH,IAAA,IAAI,CAAC,EAA8B,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,EAAE,EAAE,YAAW;gBACb,MAAM,EAAE,EAAE;YACZ,CAAC;AACF,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACH,QAAQ,CAAC,GAAG,GAA+B,EAAA;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,YAAA,EAAE,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAK,EAAE,CAAC,CAAC;AAC1D,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;AACH,IAAA,MAAM,IAAI,GAAA;QACR,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AAEvB,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YAC9B,IAAI,IAAI,CAAC,UAAU;gBAAE;AACrB,YAAA,MAAM,IAAI,CAAC,EAAE,EAAE;QACjB;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACvB;AAEA;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;AAEA;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,QAAQ;IACtB;AACD;;ACzID;;;;;;;;;;;;;;AAcG;MACU,WAAW,CAAA;AACd,IAAA,OAAO,WAAW,GAAQ,IAAI;AAC9B,IAAA,OAAO,OAAO,GAAG,KAAK;AAE9B;;;AAGG;IACH,aAAa,YAAY,GAAA;QACvB,IAAI,WAAW,CAAC,OAAO;AAAE,YAAA,OAAO,CAAC,CAAC,WAAW,CAAC,WAAW;AAEzD,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG,MAAM,OAAO,iCAAiC,CAAC;AACnE,YAAA,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,KAAK;AAC3C,YAAA,WAAW,CAAC,OAAO,GAAG,IAAI;AAC1B,YAAA,OAAO,IAAI;QACb;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC;AAC5E,YAAA,WAAW,CAAC,OAAO,GAAG,IAAI;AAC1B,YAAA,OAAO,KAAK;QACd;IACF;AAEA;;;;;;;AAOG;IACH,aAAa,MAAM,CACjB,aAAqB,EACrB,UAAkB,EAClB,OAGC,EAAA;AAED,QAAA,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE;AAClD,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,WAAW;AAAE,YAAA,OAAO,IAAI;AAEvD,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW;;AAG1C,QAAA,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;YACzC,OAAO,UAAU,CAAC,IAAI,CAAC;AACrB,gBAAA,QAAQ,EAAE,aAAa;AACvB,gBAAA,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE,OAAO,EAAE,KAAK;AACrB,gBAAA,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI;AACxC,aAAA,CAAC;QACJ;QAEA,OAAO,IAAI,UAAU,CAAC;AACpB,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,OAAO,EAAE,KAAK;AACrB,YAAA,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI;AACxC,SAAA,CAAC;IACJ;AAEA;;;;;;;;;AASG;AACH,IAAA,OAAO,aAAa,CAClB,KAAU,EACV,aAAqB,EACrB,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,CAAC,EAAA;AAET,QAAA,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;AACnC,YAAA,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE;AACjB,gBAAA,OAAO,EAAE;gBACT;YACF;AAEA,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC;YAElE,IAAI,IAAI,EAAE;;;AAGR,gBAAA,OAAO,EAAE;gBACT;YACF;;AAGA,YAAA,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;AACtB,gBAAA,QAAQ,EAAE,CAAC,cAAmB,KAAI;AAChC,oBAAA,IAAI,cAAc,KAAK,KAAK,EAAE;AAC5B,wBAAA,OAAO,EAAE;oBACX;gBACF,CAAC;AACF,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;;;;AAQG;AACH,IAAA,OAAO,YAAY,CACjB,KAAU,EACV,aAAqB,EACrB,KAAK,GAAG,CAAC,EACT,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,CAAC,EAAA;AAET,QAAA,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC;IAC/D;AAEA;;AAEG;IACH,OAAO,iBAAiB,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU;AAAE,YAAA,OAAO,EAAE;AACjD,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC;IAC/D;AAEA;;AAEG;IACH,OAAO,YAAY,CAAC,KAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;AAAE,YAAA,OAAO,EAAE;AAC5C,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC;IAC1D;AAEA;;AAEG;AACH,IAAA,OAAO,OAAO,CAAC,KAAU,EAAE,QAAgB,EAAA;AACzC,QAAA,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC;AACxC,QAAA,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE;IACxC;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"animation.cjs.js","sources":["../src/animation/Easing.ts","../src/animation/Tween.ts","../src/animation/Timeline.ts","../src/animation/SpineHelper.ts","../src/animation/SpriteAnimation.ts"],"sourcesContent":[null,null,null,null,null],"names":["Ticker","AnimatedSprite","Texture"],"mappings":"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"}
|
package/dist/animation.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Texture, AnimatedSprite, Spritesheet } from 'pixi.js';
|
|
2
|
+
|
|
1
3
|
type EasingFunction = (t: number) => number;
|
|
2
4
|
|
|
3
5
|
/**
|
|
@@ -41,6 +43,7 @@ declare class Tween {
|
|
|
41
43
|
static fromTo(target: any, fromProps: Record<string, number>, toProps: Record<string, number>, duration: number, easing?: EasingFunction, onUpdate?: (progress: number) => void): Promise<void>;
|
|
42
44
|
/**
|
|
43
45
|
* Wait for a given duration (useful in timelines).
|
|
46
|
+
* Uses PixiJS Ticker for consistent timing with other tweens.
|
|
44
47
|
*/
|
|
45
48
|
static delay(ms: number): Promise<void>;
|
|
46
49
|
/**
|
|
@@ -53,6 +56,11 @@ declare class Tween {
|
|
|
53
56
|
static killAll(): void;
|
|
54
57
|
/** Number of active tweens */
|
|
55
58
|
static get activeTweens(): number;
|
|
59
|
+
/**
|
|
60
|
+
* Reset the tween system — kill all tweens and remove the ticker.
|
|
61
|
+
* Useful for cleanup between game instances, tests, or hot-reload.
|
|
62
|
+
*/
|
|
63
|
+
static reset(): void;
|
|
56
64
|
private static ensureTicker;
|
|
57
65
|
private static tick;
|
|
58
66
|
/**
|
|
@@ -232,4 +240,112 @@ declare class SpineHelper {
|
|
|
232
240
|
static setSkin(spine: any, skinName: string): void;
|
|
233
241
|
}
|
|
234
242
|
|
|
235
|
-
|
|
243
|
+
interface SpriteAnimationConfig {
|
|
244
|
+
/** Frames per second (default: 24) */
|
|
245
|
+
fps?: number;
|
|
246
|
+
/** Whether to loop (default: true) */
|
|
247
|
+
loop?: boolean;
|
|
248
|
+
/** Start playing immediately (default: true) */
|
|
249
|
+
autoPlay?: boolean;
|
|
250
|
+
/** Callback when animation completes (non-looping) */
|
|
251
|
+
onComplete?: () => void;
|
|
252
|
+
/** Anchor point (default: 0.5 = center) */
|
|
253
|
+
anchor?: number | {
|
|
254
|
+
x: number;
|
|
255
|
+
y: number;
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Helper for creating frame-based animations from spritesheets.
|
|
260
|
+
*
|
|
261
|
+
* Wraps PixiJS `AnimatedSprite` with a convenient API for
|
|
262
|
+
* common iGaming effects: coin showers, symbol animations,
|
|
263
|
+
* sparkle trails, win celebrations.
|
|
264
|
+
*
|
|
265
|
+
* Cheaper than Spine for simple frame sequences.
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
* ```ts
|
|
269
|
+
* // From an array of textures
|
|
270
|
+
* const coinAnim = SpriteAnimation.create(coinTextures, {
|
|
271
|
+
* fps: 30,
|
|
272
|
+
* loop: true,
|
|
273
|
+
* });
|
|
274
|
+
* scene.addChild(coinAnim);
|
|
275
|
+
*
|
|
276
|
+
* // From a spritesheet with a naming pattern
|
|
277
|
+
* const sheet = Assets.get('effects');
|
|
278
|
+
* const sparkle = SpriteAnimation.fromSpritesheet(sheet, 'sparkle_');
|
|
279
|
+
* sparkle.play();
|
|
280
|
+
*
|
|
281
|
+
* // From a numbered range
|
|
282
|
+
* const explosion = SpriteAnimation.fromRange(sheet, 'explosion_{i}', 0, 24, {
|
|
283
|
+
* fps: 60,
|
|
284
|
+
* loop: false,
|
|
285
|
+
* onComplete: () => explosion.destroy(),
|
|
286
|
+
* });
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
289
|
+
declare class SpriteAnimation {
|
|
290
|
+
/**
|
|
291
|
+
* Create an animated sprite from an array of textures.
|
|
292
|
+
*
|
|
293
|
+
* @param textures - Array of PixiJS Textures
|
|
294
|
+
* @param config - Animation options
|
|
295
|
+
* @returns Configured AnimatedSprite
|
|
296
|
+
*/
|
|
297
|
+
static create(textures: Texture[], config?: SpriteAnimationConfig): AnimatedSprite;
|
|
298
|
+
/**
|
|
299
|
+
* Create an animated sprite from a spritesheet using a name prefix.
|
|
300
|
+
*
|
|
301
|
+
* Collects all textures whose keys start with `prefix`, sorted alphabetically.
|
|
302
|
+
*
|
|
303
|
+
* @param sheet - PixiJS Spritesheet instance
|
|
304
|
+
* @param prefix - Texture name prefix (e.g., 'coin_')
|
|
305
|
+
* @param config - Animation options
|
|
306
|
+
* @returns Configured AnimatedSprite
|
|
307
|
+
*/
|
|
308
|
+
static fromSpritesheet(sheet: Spritesheet, prefix: string, config?: SpriteAnimationConfig): AnimatedSprite;
|
|
309
|
+
/**
|
|
310
|
+
* Create an animated sprite from a numbered range of frames.
|
|
311
|
+
*
|
|
312
|
+
* The `pattern` string should contain `{i}` as a placeholder for the frame number.
|
|
313
|
+
* Numbers are zero-padded to match the length of `start`.
|
|
314
|
+
*
|
|
315
|
+
* @param sheet - PixiJS Spritesheet instance
|
|
316
|
+
* @param pattern - Frame name pattern, e.g. 'explosion_{i}'
|
|
317
|
+
* @param start - Start frame index (inclusive)
|
|
318
|
+
* @param end - End frame index (inclusive)
|
|
319
|
+
* @param config - Animation options
|
|
320
|
+
* @returns Configured AnimatedSprite
|
|
321
|
+
*/
|
|
322
|
+
static fromRange(sheet: Spritesheet, pattern: string, start: number, end: number, config?: SpriteAnimationConfig): AnimatedSprite;
|
|
323
|
+
/**
|
|
324
|
+
* Create an AnimatedSprite from texture aliases (loaded via AssetManager).
|
|
325
|
+
*
|
|
326
|
+
* @param aliases - Array of texture aliases
|
|
327
|
+
* @param config - Animation options
|
|
328
|
+
* @returns Configured AnimatedSprite
|
|
329
|
+
*/
|
|
330
|
+
static fromAliases(aliases: string[], config?: SpriteAnimationConfig): AnimatedSprite;
|
|
331
|
+
/**
|
|
332
|
+
* Play a one-shot animation and auto-destroy when complete.
|
|
333
|
+
* Useful for fire-and-forget effects like coin bursts.
|
|
334
|
+
*
|
|
335
|
+
* @param textures - Array of textures
|
|
336
|
+
* @param config - Animation options (loop will be forced to false)
|
|
337
|
+
* @returns Promise that resolves when animation completes
|
|
338
|
+
*/
|
|
339
|
+
static playOnce(textures: Texture[], config?: SpriteAnimationConfig): {
|
|
340
|
+
sprite: AnimatedSprite;
|
|
341
|
+
finished: Promise<void>;
|
|
342
|
+
};
|
|
343
|
+
/**
|
|
344
|
+
* Get all textures from a spritesheet that start with a given prefix.
|
|
345
|
+
* Results are sorted alphabetically by key.
|
|
346
|
+
*/
|
|
347
|
+
static getTexturesByPrefix(sheet: Spritesheet, prefix: string): Texture[];
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
export { Easing, SpineHelper, SpriteAnimation, Timeline, Tween };
|
|
351
|
+
export type { SpriteAnimationConfig };
|
package/dist/animation.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ticker } from 'pixi.js';
|
|
1
|
+
import { Ticker, AnimatedSprite, Texture } from 'pixi.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Collection of easing functions for use with Tween and Timeline.
|
|
@@ -154,9 +154,20 @@ class Tween {
|
|
|
154
154
|
}
|
|
155
155
|
/**
|
|
156
156
|
* Wait for a given duration (useful in timelines).
|
|
157
|
+
* Uses PixiJS Ticker for consistent timing with other tweens.
|
|
157
158
|
*/
|
|
158
159
|
static delay(ms) {
|
|
159
|
-
return new Promise((resolve) =>
|
|
160
|
+
return new Promise((resolve) => {
|
|
161
|
+
let elapsed = 0;
|
|
162
|
+
const onTick = (ticker) => {
|
|
163
|
+
elapsed += ticker.deltaMS;
|
|
164
|
+
if (elapsed >= ms) {
|
|
165
|
+
Ticker.shared.remove(onTick);
|
|
166
|
+
resolve();
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
Ticker.shared.add(onTick);
|
|
170
|
+
});
|
|
160
171
|
}
|
|
161
172
|
/**
|
|
162
173
|
* Kill all tweens on a target.
|
|
@@ -183,6 +194,20 @@ class Tween {
|
|
|
183
194
|
static get activeTweens() {
|
|
184
195
|
return Tween._tweens.length;
|
|
185
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Reset the tween system — kill all tweens and remove the ticker.
|
|
199
|
+
* Useful for cleanup between game instances, tests, or hot-reload.
|
|
200
|
+
*/
|
|
201
|
+
static reset() {
|
|
202
|
+
for (const tw of Tween._tweens) {
|
|
203
|
+
tw.resolve();
|
|
204
|
+
}
|
|
205
|
+
Tween._tweens.length = 0;
|
|
206
|
+
if (Tween._tickerAdded) {
|
|
207
|
+
Ticker.shared.remove(Tween.tick);
|
|
208
|
+
Tween._tickerAdded = false;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
186
211
|
// ─── Internal ──────────────────────────────────────────
|
|
187
212
|
static ensureTicker() {
|
|
188
213
|
if (Tween._tickerAdded)
|
|
@@ -496,5 +521,169 @@ class SpineHelper {
|
|
|
496
521
|
}
|
|
497
522
|
}
|
|
498
523
|
|
|
499
|
-
|
|
524
|
+
/**
|
|
525
|
+
* Helper for creating frame-based animations from spritesheets.
|
|
526
|
+
*
|
|
527
|
+
* Wraps PixiJS `AnimatedSprite` with a convenient API for
|
|
528
|
+
* common iGaming effects: coin showers, symbol animations,
|
|
529
|
+
* sparkle trails, win celebrations.
|
|
530
|
+
*
|
|
531
|
+
* Cheaper than Spine for simple frame sequences.
|
|
532
|
+
*
|
|
533
|
+
* @example
|
|
534
|
+
* ```ts
|
|
535
|
+
* // From an array of textures
|
|
536
|
+
* const coinAnim = SpriteAnimation.create(coinTextures, {
|
|
537
|
+
* fps: 30,
|
|
538
|
+
* loop: true,
|
|
539
|
+
* });
|
|
540
|
+
* scene.addChild(coinAnim);
|
|
541
|
+
*
|
|
542
|
+
* // From a spritesheet with a naming pattern
|
|
543
|
+
* const sheet = Assets.get('effects');
|
|
544
|
+
* const sparkle = SpriteAnimation.fromSpritesheet(sheet, 'sparkle_');
|
|
545
|
+
* sparkle.play();
|
|
546
|
+
*
|
|
547
|
+
* // From a numbered range
|
|
548
|
+
* const explosion = SpriteAnimation.fromRange(sheet, 'explosion_{i}', 0, 24, {
|
|
549
|
+
* fps: 60,
|
|
550
|
+
* loop: false,
|
|
551
|
+
* onComplete: () => explosion.destroy(),
|
|
552
|
+
* });
|
|
553
|
+
* ```
|
|
554
|
+
*/
|
|
555
|
+
class SpriteAnimation {
|
|
556
|
+
/**
|
|
557
|
+
* Create an animated sprite from an array of textures.
|
|
558
|
+
*
|
|
559
|
+
* @param textures - Array of PixiJS Textures
|
|
560
|
+
* @param config - Animation options
|
|
561
|
+
* @returns Configured AnimatedSprite
|
|
562
|
+
*/
|
|
563
|
+
static create(textures, config = {}) {
|
|
564
|
+
const sprite = new AnimatedSprite(textures);
|
|
565
|
+
// Configure
|
|
566
|
+
sprite.animationSpeed = (config.fps ?? 24) / 60; // PixiJS uses speed relative to 60fps ticker
|
|
567
|
+
sprite.loop = config.loop ?? true;
|
|
568
|
+
// Anchor
|
|
569
|
+
if (config.anchor !== undefined) {
|
|
570
|
+
if (typeof config.anchor === 'number') {
|
|
571
|
+
sprite.anchor.set(config.anchor);
|
|
572
|
+
}
|
|
573
|
+
else {
|
|
574
|
+
sprite.anchor.set(config.anchor.x, config.anchor.y);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
else {
|
|
578
|
+
sprite.anchor.set(0.5);
|
|
579
|
+
}
|
|
580
|
+
// Complete callback
|
|
581
|
+
if (config.onComplete) {
|
|
582
|
+
sprite.onComplete = config.onComplete;
|
|
583
|
+
}
|
|
584
|
+
// Auto-play
|
|
585
|
+
if (config.autoPlay !== false) {
|
|
586
|
+
sprite.play();
|
|
587
|
+
}
|
|
588
|
+
return sprite;
|
|
589
|
+
}
|
|
590
|
+
/**
|
|
591
|
+
* Create an animated sprite from a spritesheet using a name prefix.
|
|
592
|
+
*
|
|
593
|
+
* Collects all textures whose keys start with `prefix`, sorted alphabetically.
|
|
594
|
+
*
|
|
595
|
+
* @param sheet - PixiJS Spritesheet instance
|
|
596
|
+
* @param prefix - Texture name prefix (e.g., 'coin_')
|
|
597
|
+
* @param config - Animation options
|
|
598
|
+
* @returns Configured AnimatedSprite
|
|
599
|
+
*/
|
|
600
|
+
static fromSpritesheet(sheet, prefix, config = {}) {
|
|
601
|
+
const textures = SpriteAnimation.getTexturesByPrefix(sheet, prefix);
|
|
602
|
+
if (textures.length === 0) {
|
|
603
|
+
console.warn(`[SpriteAnimation] No textures found with prefix "${prefix}"`);
|
|
604
|
+
}
|
|
605
|
+
return SpriteAnimation.create(textures, config);
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* Create an animated sprite from a numbered range of frames.
|
|
609
|
+
*
|
|
610
|
+
* The `pattern` string should contain `{i}` as a placeholder for the frame number.
|
|
611
|
+
* Numbers are zero-padded to match the length of `start`.
|
|
612
|
+
*
|
|
613
|
+
* @param sheet - PixiJS Spritesheet instance
|
|
614
|
+
* @param pattern - Frame name pattern, e.g. 'explosion_{i}'
|
|
615
|
+
* @param start - Start frame index (inclusive)
|
|
616
|
+
* @param end - End frame index (inclusive)
|
|
617
|
+
* @param config - Animation options
|
|
618
|
+
* @returns Configured AnimatedSprite
|
|
619
|
+
*/
|
|
620
|
+
static fromRange(sheet, pattern, start, end, config = {}) {
|
|
621
|
+
const textures = [];
|
|
622
|
+
const padLength = String(end).length;
|
|
623
|
+
for (let i = start; i <= end; i++) {
|
|
624
|
+
const name = pattern.replace('{i}', String(i).padStart(padLength, '0'));
|
|
625
|
+
const texture = sheet.textures[name];
|
|
626
|
+
if (texture) {
|
|
627
|
+
textures.push(texture);
|
|
628
|
+
}
|
|
629
|
+
else {
|
|
630
|
+
console.warn(`[SpriteAnimation] Missing frame: "${name}"`);
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
if (textures.length === 0) {
|
|
634
|
+
console.warn(`[SpriteAnimation] No textures found for pattern "${pattern}" [${start}..${end}]`);
|
|
635
|
+
}
|
|
636
|
+
return SpriteAnimation.create(textures, config);
|
|
637
|
+
}
|
|
638
|
+
/**
|
|
639
|
+
* Create an AnimatedSprite from texture aliases (loaded via AssetManager).
|
|
640
|
+
*
|
|
641
|
+
* @param aliases - Array of texture aliases
|
|
642
|
+
* @param config - Animation options
|
|
643
|
+
* @returns Configured AnimatedSprite
|
|
644
|
+
*/
|
|
645
|
+
static fromAliases(aliases, config = {}) {
|
|
646
|
+
const textures = aliases.map((alias) => {
|
|
647
|
+
const tex = Texture.from(alias);
|
|
648
|
+
return tex;
|
|
649
|
+
});
|
|
650
|
+
return SpriteAnimation.create(textures, config);
|
|
651
|
+
}
|
|
652
|
+
/**
|
|
653
|
+
* Play a one-shot animation and auto-destroy when complete.
|
|
654
|
+
* Useful for fire-and-forget effects like coin bursts.
|
|
655
|
+
*
|
|
656
|
+
* @param textures - Array of textures
|
|
657
|
+
* @param config - Animation options (loop will be forced to false)
|
|
658
|
+
* @returns Promise that resolves when animation completes
|
|
659
|
+
*/
|
|
660
|
+
static playOnce(textures, config = {}) {
|
|
661
|
+
const finished = new Promise((resolve) => {
|
|
662
|
+
config = {
|
|
663
|
+
...config,
|
|
664
|
+
loop: false,
|
|
665
|
+
onComplete: () => {
|
|
666
|
+
config.onComplete?.();
|
|
667
|
+
sprite.destroy();
|
|
668
|
+
resolve();
|
|
669
|
+
},
|
|
670
|
+
};
|
|
671
|
+
});
|
|
672
|
+
const sprite = SpriteAnimation.create(textures, config);
|
|
673
|
+
return { sprite, finished };
|
|
674
|
+
}
|
|
675
|
+
// ─── Utility ───────────────────────────────────────────
|
|
676
|
+
/**
|
|
677
|
+
* Get all textures from a spritesheet that start with a given prefix.
|
|
678
|
+
* Results are sorted alphabetically by key.
|
|
679
|
+
*/
|
|
680
|
+
static getTexturesByPrefix(sheet, prefix) {
|
|
681
|
+
const keys = Object.keys(sheet.textures)
|
|
682
|
+
.filter((k) => k.startsWith(prefix))
|
|
683
|
+
.sort();
|
|
684
|
+
return keys.map((k) => sheet.textures[k]);
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
export { Easing, SpineHelper, SpriteAnimation, Timeline, Tween };
|
|
500
689
|
//# sourceMappingURL=animation.esm.js.map
|