mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-02-02 08:29:26 +08:00
33 lines
805 B
TypeScript
33 lines
805 B
TypeScript
const animation: ((time: number) => void)[] = [];
|
|
|
|
let animateTime = 0;
|
|
|
|
export default function init() {
|
|
core.registerAnimationFrame('animateController', true, time => {
|
|
if (time - animateTime <= core.values.animateSpeed) return;
|
|
for (const fn of animation) {
|
|
fn(time);
|
|
}
|
|
animateTime = core.animateFrame.animateTime;
|
|
});
|
|
return { addAnimate, removeAnimate };
|
|
}
|
|
|
|
/**
|
|
* 添加一个动画
|
|
* @param fn 要添加的函数
|
|
*/
|
|
export function addAnimate(fn: (time: number) => void) {
|
|
animation.push(fn);
|
|
}
|
|
|
|
/**
|
|
* 移除一个动画
|
|
* @param fn 要移除的函数
|
|
*/
|
|
export function removeAnimate(fn: (time: number) => void) {
|
|
const index = animation.findIndex(v => v === fn);
|
|
if (index === -1) return;
|
|
animation.splice(index, 1);
|
|
}
|