lyb-pixi-js 1.1.11 → 1.1.13

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.
Files changed (62) hide show
  1. package/Components/Base/LibPixiBitText.d.ts +20 -0
  2. package/Components/Base/LibPixiBitText.js +26 -0
  3. package/Components/Base/LibPixiContainer.d.ts +22 -0
  4. package/Components/Base/LibPixiContainer.js +51 -0
  5. package/Components/Base/LibPixiParticleMove.d.ts +39 -0
  6. package/Components/Base/LibPixiParticleMove.js +100 -0
  7. package/Components/Base/LibPixiRectBgColor.d.ts +45 -0
  8. package/Components/Base/LibPixiRectBgColor.js +98 -0
  9. package/Components/Base/LibPixiSpine.d.ts +57 -0
  10. package/Components/Base/LibPixiSpine.js +122 -0
  11. package/Components/Base/LibPixiText.d.ts +37 -0
  12. package/Components/Base/LibPixiText.js +32 -0
  13. package/Components/Custom/LibPixiButtonHover.d.ts +32 -0
  14. package/Components/Custom/LibPixiButtonHover.js +44 -0
  15. package/Components/Custom/LibPixiCloseBtn.d.ts +14 -0
  16. package/Components/Custom/LibPixiCloseBtn.js +35 -0
  17. package/Components/Custom/LibPixiDrawer.d.ts +16 -0
  18. package/Components/Custom/LibPixiDrawer.js +59 -0
  19. package/Components/Custom/LibPixiPerforMon.d.ts +31 -0
  20. package/Components/Custom/LibPixiPerforMon.js +107 -0
  21. package/Components/Custom/LibPixiProgress.d.ts +29 -0
  22. package/Components/Custom/LibPixiProgress.js +36 -0
  23. package/Components/Custom/LibPixiScrollContainer.d.ts +57 -0
  24. package/Components/Custom/LibPixiScrollContainer.js +166 -0
  25. package/Components/Custom/LibPixiScrollNum.d.ts +62 -0
  26. package/Components/Custom/LibPixiScrollNum.js +146 -0
  27. package/Components/Custom/LibPixiSlider.d.ts +45 -0
  28. package/Components/Custom/LibPixiSlider.js +111 -0
  29. package/Components/Custom/LibPixiSubAddMinMax.d.ts +49 -0
  30. package/Components/Custom/LibPixiSubAddMinMax.js +76 -0
  31. package/Components/Custom/LibPixiTable.d.ts +52 -0
  32. package/Components/Custom/LibPixiTable.js +70 -0
  33. package/Utils/LibPixiAudio.d.ts +55 -0
  34. package/Utils/LibPixiAudio.js +172 -0
  35. package/Utils/LibPixiCreateNineGrid.d.ts +15 -0
  36. package/Utils/LibPixiCreateNineGrid.js +19 -0
  37. package/Utils/LibPixiEvent.d.ts +9 -0
  38. package/Utils/LibPixiEvent.js +22 -0
  39. package/Utils/LibPixiEventControlled.d.ts +8 -0
  40. package/Utils/LibPixiEventControlled.js +21 -0
  41. package/Utils/LibPixiFilter.d.ts +9 -0
  42. package/Utils/LibPixiFilter.js +30 -0
  43. package/Utils/LibPixiIntervalTrigger.d.ts +6 -0
  44. package/Utils/LibPixiIntervalTrigger.js +33 -0
  45. package/Utils/LibPixiOutsideClick.d.ts +8 -0
  46. package/Utils/LibPixiOutsideClick.js +22 -0
  47. package/Utils/LibPixiOverflowHidden.d.ts +6 -0
  48. package/Utils/LibPixiOverflowHidden.js +14 -0
  49. package/Utils/LibPixiPromiseTickerTimeout.d.ts +6 -0
  50. package/Utils/LibPixiPromiseTickerTimeout.js +22 -0
  51. package/Utils/LibPixiScaleContainer.d.ts +8 -0
  52. package/Utils/LibPixiScaleContainer.js +14 -0
  53. package/Utils/LibPixiShadow.d.ts +17 -0
  54. package/Utils/LibPixiShadow.js +18 -0
  55. package/Utils/LibPixiTickerTimeout.d.ts +6 -0
  56. package/Utils/LibPixiTickerTimeout.js +28 -0
  57. package/index.d.ts +1 -0
  58. package/index.js +2 -0
  59. package/libPixiJs.d.ts +163 -0
  60. package/libPixiJs.js +174 -0
  61. package/lyb-pixi.js +1263 -0
  62. package/package.json +1 -1
@@ -0,0 +1,172 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import gsap from "gsap";
11
+ import { Assets } from "pixi.js";
12
+ /** @description 音频播放器
13
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiAudio-音频播放器
14
+ */
15
+ export class LibPixiAudio {
16
+ constructor() {
17
+ /** 是否启用音效 */
18
+ this.effectEnabled = true;
19
+ /** 是否启用音乐 */
20
+ this.musicEnabled = true;
21
+ /** 音乐是否处于暂停状态 */
22
+ this._isMusicPaused = false;
23
+ /** 是否已切换后台 */
24
+ this._isBackground = false;
25
+ /** 当前正在播放的音效列表 */
26
+ this._playingList = [];
27
+ /** @description 设置音效和音乐播放状态
28
+ * @param status 播放状态,false为暂停
29
+ */
30
+ this._setPlayStatus = (status) => {
31
+ if (status) {
32
+ !this._isMusicPaused && this._musicPlayer.play();
33
+ }
34
+ else {
35
+ this._musicPlayer.pause();
36
+ }
37
+ this._playingList.forEach((item) => {
38
+ if (status) {
39
+ item.audio.play();
40
+ }
41
+ else {
42
+ item.audio.pause();
43
+ }
44
+ });
45
+ };
46
+ this._musicPlayer = new Audio();
47
+ document.addEventListener("visibilitychange", () => {
48
+ this._isBackground = document.hidden;
49
+ this._setPlayStatus(!document.hidden);
50
+ });
51
+ }
52
+ /** @description 播放音效
53
+ * @param key 音效资源Key,内部会使用Assets.get(key)获取音频资源
54
+ * @param end 倒数几秒位置播放,单位秒
55
+ */
56
+ playEffect(key, end) {
57
+ return new Promise((resolve) => {
58
+ const id = new Date().getTime();
59
+ const url = Assets.get(key).url;
60
+ const audio = new Audio(url);
61
+ //倒数几秒位置播放
62
+ if (end) {
63
+ const duration = audio.duration;
64
+ const start = duration - end;
65
+ audio.currentTime = Math.max(start, 0);
66
+ }
67
+ audio.muted = this._isBackground || !this.effectEnabled;
68
+ audio.addEventListener("ended", () => {
69
+ this._playingList = this._playingList.filter((item) => item.id !== id);
70
+ resolve();
71
+ });
72
+ audio
73
+ .play()
74
+ .then(() => {
75
+ this._playingList.push({
76
+ id,
77
+ audio,
78
+ url,
79
+ });
80
+ })
81
+ .catch(() => { });
82
+ });
83
+ }
84
+ /** @description 播放音乐
85
+ * @param key 音效资源Key,内部会使用Assets.get(key)获取音频资源
86
+ */
87
+ playMusic(key) {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ //如果有音乐正在播放,则停止
90
+ if (this._musicPlayer) {
91
+ gsap.killTweensOf(this._musicPlayer);
92
+ yield gsap.to(this._musicPlayer, {
93
+ volume: 0,
94
+ duration: 1,
95
+ ease: "linear",
96
+ });
97
+ this._musicPlayer.pause();
98
+ }
99
+ const url = Assets.get(key).url;
100
+ this._musicPlayer.src = url;
101
+ this._musicPlayer.loop = true;
102
+ this._musicPlayer.volume = 0;
103
+ const play = () => {
104
+ this._musicPlayer
105
+ .play()
106
+ .then(() => {
107
+ this._isMusicPaused = false;
108
+ gsap.killTweensOf(this._musicPlayer);
109
+ gsap.to(this._musicPlayer, {
110
+ volume: 1,
111
+ duration: 1,
112
+ ease: "linear",
113
+ });
114
+ })
115
+ .catch(() => {
116
+ requestAnimationFrame(play.bind(this));
117
+ });
118
+ };
119
+ play();
120
+ });
121
+ }
122
+ /** @description 暂停音乐 */
123
+ pauseMusic() {
124
+ this._isMusicPaused = true;
125
+ this._musicPlayer.pause();
126
+ }
127
+ /** @description 继续播放音乐 */
128
+ resumeMusic() {
129
+ this._isMusicPaused = false;
130
+ this._musicPlayer.play();
131
+ }
132
+ /** @description 停止播放指定音效
133
+ * @param key 音效资源Key,内部会使用Assets.get(key)获取音频资源进行停止
134
+ */
135
+ stopEffect(link) {
136
+ const url = Assets.get(link).url;
137
+ this._playingList.forEach((item) => {
138
+ if (item.url === url) {
139
+ item.audio.pause();
140
+ }
141
+ });
142
+ this._playingList = this._playingList.filter((item) => item.url !== url);
143
+ }
144
+ /** @description 设置启用音效
145
+ * @param enabled 启用状态,false为禁用
146
+ */
147
+ setEffectEnabled(enabled) {
148
+ this.effectEnabled = enabled;
149
+ this._setEffectMute(!enabled);
150
+ }
151
+ /** @description 设置启用音乐
152
+ * @param enabled 启用状态,false为禁用
153
+ */
154
+ setMusicEnabled(enabled) {
155
+ this.musicEnabled = enabled;
156
+ this._setMusicMute(!enabled);
157
+ }
158
+ /** @description 设置静音音乐
159
+ * @param disabled 静音状态,true为静音
160
+ */
161
+ _setMusicMute(disabled) {
162
+ this._musicPlayer.muted = disabled || !this.musicEnabled;
163
+ }
164
+ /** @description 设置静音音效
165
+ * @param disabled 静音状态,true为静音
166
+ */
167
+ _setEffectMute(disabled) {
168
+ this._playingList.forEach((item) => {
169
+ item.audio.muted = disabled || !this.effectEnabled;
170
+ });
171
+ }
172
+ }
@@ -0,0 +1,15 @@
1
+ import { NineSlicePlane, type Texture } from "pixi.js";
2
+ export interface LibPixiCreateNineGridParams {
3
+ /** 九宫格图片 */
4
+ texture: Texture;
5
+ /** 四个角的宽度 */
6
+ dotWidth: number | [number, number, number, number];
7
+ /** 宽度 */
8
+ width: number;
9
+ /** 高度 */
10
+ height: number;
11
+ }
12
+ /** @description 九宫格图
13
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiCreateNineGrid-九宫格图
14
+ */
15
+ export declare const libPixiCreateNineGrid: (params: LibPixiCreateNineGridParams) => NineSlicePlane;
@@ -0,0 +1,19 @@
1
+ import { NineSlicePlane } from "pixi.js";
2
+ /** @description 九宫格图
3
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiCreateNineGrid-九宫格图
4
+ */
5
+ export const libPixiCreateNineGrid = (params) => {
6
+ const { texture, dotWidth, width, height } = params;
7
+ let slice_width = [];
8
+ // 四个角的宽度
9
+ if (Array.isArray(dotWidth)) {
10
+ slice_width = dotWidth;
11
+ }
12
+ else {
13
+ slice_width = [dotWidth, dotWidth, dotWidth, dotWidth];
14
+ }
15
+ const nineSlicePlane = new NineSlicePlane(texture, slice_width[0], slice_width[1], slice_width[2], slice_width[3]);
16
+ nineSlicePlane.width = width;
17
+ nineSlicePlane.height = height;
18
+ return nineSlicePlane;
19
+ };
@@ -0,0 +1,9 @@
1
+ import type { Container, DisplayObjectEvents } from "pixi.js";
2
+ /** @description 事件注册
3
+ * @param v 事件容器
4
+ * @param eventName 事件名称
5
+ * @param callback 回调函数
6
+ * @param once 是否只执行一次
7
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiEvent-事件注册
8
+ */
9
+ export declare const libPixiEvent: (v: Container, eventName: keyof DisplayObjectEvents, callback: (...args: any) => void, once?: boolean) => void;
@@ -0,0 +1,22 @@
1
+ /** @description 事件注册
2
+ * @param v 事件容器
3
+ * @param eventName 事件名称
4
+ * @param callback 回调函数
5
+ * @param once 是否只执行一次
6
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiEvent-事件注册
7
+ */
8
+ export const libPixiEvent = (v, eventName, callback, once = false) => {
9
+ v.cursor = "pointer";
10
+ v.eventMode = "static";
11
+ const fn = (e) => {
12
+ if (e.button === 2)
13
+ return;
14
+ callback(e);
15
+ };
16
+ if (once) {
17
+ v.once(eventName, fn);
18
+ }
19
+ else {
20
+ v.on(eventName, fn);
21
+ }
22
+ };
@@ -0,0 +1,8 @@
1
+ import type { Container, DisplayObjectEvents } from "pixi.js";
2
+ /** @description 设置可关闭的事件监听,调用自身后不再触发
3
+ * @param container 事件容器
4
+ * @param eventName 事件名称
5
+ * @param callback 事件回调
6
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiEventControlled-可关闭的事件
7
+ */
8
+ export declare const libPixiEventControlled: (container: Container, eventName: keyof DisplayObjectEvents, callback: (...args: any) => void) => () => void;
@@ -0,0 +1,21 @@
1
+ /** @description 设置可关闭的事件监听,调用自身后不再触发
2
+ * @param container 事件容器
3
+ * @param eventName 事件名称
4
+ * @param callback 事件回调
5
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiEventControlled-可关闭的事件
6
+ */
7
+ export const libPixiEventControlled = (container, eventName, callback) => {
8
+ let isDestroy = false;
9
+ container.cursor = "pointer";
10
+ container.eventMode = "static";
11
+ container.on(eventName, (e) => {
12
+ if (isDestroy)
13
+ return;
14
+ if (e.button === 2)
15
+ return;
16
+ callback(e);
17
+ });
18
+ return () => {
19
+ isDestroy = true;
20
+ };
21
+ };
@@ -0,0 +1,9 @@
1
+ /** @description 设置滤镜 */
2
+ import { ColorMatrixFilter, BlurFilter } from "pixi.js";
3
+ export type LibPixiSetFilterFilterName = "brightness" | "blur" | "desaturate" | "contrast";
4
+ /** @description 滤镜
5
+ * @param filterName 滤镜名称
6
+ * @param v 滤镜值
7
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiFilter-滤镜
8
+ */
9
+ export declare const libPixiFilter: (filterName: LibPixiSetFilterFilterName, v?: number) => ColorMatrixFilter | BlurFilter;
@@ -0,0 +1,30 @@
1
+ /** @description 设置滤镜 */
2
+ import { ColorMatrixFilter, BlurFilter } from "pixi.js";
3
+ /** @description 滤镜
4
+ * @param filterName 滤镜名称
5
+ * @param v 滤镜值
6
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiFilter-滤镜
7
+ */
8
+ export const libPixiFilter = (filterName, v) => {
9
+ let filter;
10
+ if (filterName === "brightness") {
11
+ filter = new ColorMatrixFilter();
12
+ filter.brightness(v, false); // 设置亮度
13
+ }
14
+ else if (filterName === "blur") {
15
+ filter = new BlurFilter();
16
+ }
17
+ else if (filterName === "desaturate") {
18
+ filter = new ColorMatrixFilter();
19
+ filter.desaturate();
20
+ }
21
+ else if (filterName === "contrast") {
22
+ filter = new ColorMatrixFilter();
23
+ filter.contrast(v, false);
24
+ }
25
+ else {
26
+ throw new Error("未知滤镜名称");
27
+ }
28
+ filter.resolution = window.devicePixelRatio || 1;
29
+ return filter;
30
+ };
@@ -0,0 +1,6 @@
1
+ /** @description 间隔触发
2
+ * @param callback 回调函数
3
+ * @param interval 间隔毫秒,或随机范围
4
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiIntervalTrigger-间隔触发
5
+ */
6
+ export declare const libPixiIntervalTrigger: (callback: () => void, interval: number | [number, number]) => () => void;
@@ -0,0 +1,33 @@
1
+ import { Ticker } from "pixi.js"; //@ts-ignore
2
+ import { libJsRandom } from "lyb-js/Random/LibJsRandom.js";
3
+ /** @description 间隔触发
4
+ * @param callback 回调函数
5
+ * @param interval 间隔毫秒,或随机范围
6
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiIntervalTrigger-间隔触发
7
+ */
8
+ export const libPixiIntervalTrigger = (callback, interval) => {
9
+ let elapsedTime = 0;
10
+ // 创建一个新的 Ticker 实例
11
+ const ticker = new Ticker();
12
+ // 创建回调函数
13
+ const tickerCallback = (deltaTime) => {
14
+ elapsedTime += deltaTime * ticker.deltaMS;
15
+ let intervalNum = 0;
16
+ if (Array.isArray(interval)) {
17
+ intervalNum = libJsRandom(interval[0], interval[1], 2);
18
+ }
19
+ else {
20
+ intervalNum = interval;
21
+ }
22
+ if (elapsedTime >= intervalNum) {
23
+ callback();
24
+ elapsedTime = 0;
25
+ }
26
+ };
27
+ ticker.add(tickerCallback);
28
+ ticker.start();
29
+ return () => {
30
+ ticker.remove(tickerCallback);
31
+ ticker.stop();
32
+ };
33
+ };
@@ -0,0 +1,8 @@
1
+ import type { Container } from "pixi.js";
2
+ /** @description 点击容器外或入口按钮时隐藏
3
+ * @param container 容器
4
+ * @param btn 按钮
5
+ * @param onClose 关闭回调
6
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiOutsideClick-失焦隐藏
7
+ */
8
+ export declare const libPixiOutsideClick: (container: Container, btn: Container, onClose: () => void) => () => void;
@@ -0,0 +1,22 @@
1
+ /** @description 点击容器外或入口按钮时隐藏
2
+ * @param container 容器
3
+ * @param btn 按钮
4
+ * @param onClose 关闭回调
5
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiOutsideClick-失焦隐藏
6
+ */
7
+ export const libPixiOutsideClick = (container, btn, onClose) => {
8
+ const outsideClick = (e) => {
9
+ const btnInside = btn.getBounds().contains(e.clientX, e.clientY);
10
+ const containerInside = container
11
+ .getBounds()
12
+ .contains(e.clientX, e.clientY);
13
+ if (!btnInside && !containerInside && container.visible) {
14
+ onClose();
15
+ window.removeEventListener("pointerdown", outsideClick);
16
+ }
17
+ };
18
+ window.addEventListener("pointerdown", outsideClick);
19
+ return () => {
20
+ window.removeEventListener("pointerdown", outsideClick);
21
+ };
22
+ };
@@ -0,0 +1,6 @@
1
+ import { Graphics, type Container } from "pixi.js";
2
+ /** @description 为容器创建并应用一个矩形遮罩,用于隐藏溢出的内容,函数会返回遮罩,可控制是否显示遮罩
3
+ * @param container 需要设置遮罩裁剪的容器
4
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiOverflowHidden-溢出裁剪
5
+ */
6
+ export declare const libPixiOverflowHidden: (container: Container) => Graphics;
@@ -0,0 +1,14 @@
1
+ import { Graphics } from "pixi.js";
2
+ /** @description 为容器创建并应用一个矩形遮罩,用于隐藏溢出的内容,函数会返回遮罩,可控制是否显示遮罩
3
+ * @param container 需要设置遮罩裁剪的容器
4
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiOverflowHidden-溢出裁剪
5
+ */
6
+ export const libPixiOverflowHidden = (container) => {
7
+ const mask = new Graphics();
8
+ mask.beginFill(0xffffff);
9
+ mask.drawRect(0, 0, container.width, container.height);
10
+ mask.endFill();
11
+ container.addChild(mask);
12
+ container.mask = mask;
13
+ return mask;
14
+ };
@@ -0,0 +1,6 @@
1
+ /** @description 基于 Ticker 和 Promise 的定时器
2
+ * @param delay 延迟时间
3
+ * @param callback 延迟后执行的函数
4
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiPromiseTickerTimeout-TickerPromise定时器
5
+ */
6
+ export declare const libPixiPromiseTickerTimeout: (delay?: number, callback?: () => void) => Promise<void>;
@@ -0,0 +1,22 @@
1
+ import { Ticker } from "pixi.js";
2
+ /** @description 基于 Ticker 和 Promise 的定时器
3
+ * @param delay 延迟时间
4
+ * @param callback 延迟后执行的函数
5
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiPromiseTickerTimeout-TickerPromise定时器
6
+ */
7
+ export const libPixiPromiseTickerTimeout = (delay = 1, callback) => {
8
+ return new Promise((resolve) => {
9
+ let elapsedTime = 0;
10
+ const ticker = new Ticker();
11
+ const tickerCallback = () => {
12
+ elapsedTime += ticker.deltaMS;
13
+ if (elapsedTime >= delay) {
14
+ callback === null || callback === void 0 ? void 0 : callback();
15
+ ticker.destroy();
16
+ resolve();
17
+ }
18
+ };
19
+ ticker.add(tickerCallback);
20
+ ticker.start();
21
+ });
22
+ };
@@ -0,0 +1,8 @@
1
+ import type { Container, Sprite, Text } from "pixi.js";
2
+ /** @description 元素超过指定宽度就缩放
3
+ * @param scaleContainer 需要缩放的元素
4
+ * @param maxWidth 最大宽度
5
+ * @param maxHeight 最大高度
6
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiScaleContainer-超出缩放
7
+ */
8
+ export declare const libPixiScaleContainer: (scaleContainer: Container | Sprite | Text, maxWidth: number, maxHeight?: number) => void;
@@ -0,0 +1,14 @@
1
+ /** @description 元素超过指定宽度就缩放
2
+ * @param scaleContainer 需要缩放的元素
3
+ * @param maxWidth 最大宽度
4
+ * @param maxHeight 最大高度
5
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiScaleContainer-超出缩放
6
+ */
7
+ export const libPixiScaleContainer = (scaleContainer, maxWidth, maxHeight) => {
8
+ const scaleX = (maxWidth / scaleContainer.width) * scaleContainer.scale.x;
9
+ const scaleY = maxHeight
10
+ ? (maxHeight / scaleContainer.height) * scaleContainer.scale.y
11
+ : scaleX;
12
+ const scale = Math.min(scaleX, scaleY);
13
+ scaleContainer.scale.set(scale > 1 ? 1 : scale);
14
+ };
@@ -0,0 +1,17 @@
1
+ import type { Container } from "pixi.js";
2
+ export interface LibPixiShadowShadowConfig {
3
+ color?: string;
4
+ alpha?: number;
5
+ blur?: number;
6
+ distance?: number;
7
+ offset?: {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ }
12
+ /** @description 为图片或容器设置阴影
13
+ * @param container 需要添加阴影的元素
14
+ * @param config 配置项
15
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiShadow-阴影
16
+ */
17
+ export declare const libPixiShadow: (container: Container, config?: LibPixiShadowShadowConfig) => void;
@@ -0,0 +1,18 @@
1
+ import { DropShadowFilter } from "@pixi/filter-drop-shadow";
2
+ /** @description 为图片或容器设置阴影
3
+ * @param container 需要添加阴影的元素
4
+ * @param config 配置项
5
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiShadow-阴影
6
+ */
7
+ export const libPixiShadow = (container, config) => {
8
+ const { color = "#000", alpha = 0.25, blur = 1, distance = 0, offset = { x: 0, y: 0 }, } = config || {};
9
+ const shadowFilter = new DropShadowFilter({
10
+ color: color,
11
+ alpha,
12
+ blur,
13
+ distance,
14
+ offset,
15
+ });
16
+ shadowFilter.resolution = window.devicePixelRatio || 1;
17
+ container.filters = [shadowFilter];
18
+ };
@@ -0,0 +1,6 @@
1
+ /** @description 基于 Ticker 的定时器
2
+ * @param callback 延迟后执行的函数
3
+ * @param delay 延迟时间
4
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiTickerTimeout-Ticker定时器
5
+ */
6
+ export declare const libPixiTickerTimeout: (callback: () => void, delay?: number) => () => void;
@@ -0,0 +1,28 @@
1
+ import { Ticker } from "pixi.js";
2
+ /** @description 基于 Ticker 的定时器
3
+ * @param callback 延迟后执行的函数
4
+ * @param delay 延迟时间
5
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiTickerTimeout-Ticker定时器
6
+ */
7
+ export const libPixiTickerTimeout = (callback, delay = 1) => {
8
+ let elapsedTime = 0;
9
+ const ticker = new Ticker();
10
+ const tickerCallback = () => {
11
+ elapsedTime += ticker.deltaMS;
12
+ if (elapsedTime >= delay) {
13
+ callback === null || callback === void 0 ? void 0 : callback();
14
+ try {
15
+ ticker.destroy();
16
+ }
17
+ catch (error) { }
18
+ }
19
+ };
20
+ ticker.add(tickerCallback);
21
+ ticker.start();
22
+ return () => {
23
+ try {
24
+ ticker.destroy();
25
+ }
26
+ catch (error) { }
27
+ };
28
+ };
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * as LibPixiJs from "./libPixiJs";
package/index.js ADDED
@@ -0,0 +1,2 @@
1
+ import * as LibPixiJs_1 from "./libPixiJs";
2
+ export { LibPixiJs_1 as LibPixiJs };