UNPKG

@tsparticles/updater-wobble

Version:

tsParticles particles wobble updater

17 lines (16 loc) 918 B
import { millisecondsToSeconds } from "@tsparticles/engine"; const defaultDistance = 0, double = 2, doublePI = Math.PI * double, distanceFactor = 60; export function updateWobble(particle, delta) { const { wobble: wobbleOptions } = particle.options, { container, wobble } = particle; if (!wobbleOptions?.enable || !wobble) { return; } const reduceFactor = container.retina.reduceFactor, angleSpeed = wobble.angleSpeed * delta.factor * reduceFactor, moveSpeed = wobble.moveSpeed * delta.factor * reduceFactor, distance = (moveSpeed * (particle.retina.wobbleDistance ?? defaultDistance)) / (millisecondsToSeconds / distanceFactor), max = doublePI, { position } = particle; wobble.angle += angleSpeed; if (wobble.angle > max) { wobble.angle -= max; } position.x += distance * Math.cos(wobble.angle); position.y += distance * Math.abs(Math.sin(wobble.angle)); }