Files
open-lovable/components/app/(home)/sections/hero/Pixi/tickers/features/cellReveal.ts
T
Developers Digest 836b085f75 continue re-design
2025-09-05 13:06:17 -04:00

52 lines
998 B
TypeScript

import { Ticker } from "@/components/shared/pixi/Pixi";
import AnimatedRect from "./components/AnimatedRect";
type Props = Parameters<Ticker>[0] & {
x: number;
y: number;
};
export default function cellReveal(props: Props) {
const graphic = AnimatedRect({
app: props.app,
x: props.x + 0.5,
y: props.y + 0.5,
width: 101,
height: 101,
radius: 0,
alpha: 0,
color: 0x000,
centering: false,
});
props.app.stage.addChild(graphic.graphic);
return {
trigger: async () => {
let cycleCount = 0;
const cycle = async () => {
await graphic.animate(
{
alpha: Math.random() * 0.04,
},
{
ease: "linear",
duration: 0.03,
},
);
if (cycleCount < 5) {
cycleCount += 1;
cycle();
} else {
await graphic.animate({ alpha: 0 });
graphic.graphic.destroy();
}
};
cycle();
},
};
}