Skip to content

Commit

Permalink
fix: fixed gravity on retina displays and an issue with inverse gravity
Browse files Browse the repository at this point in the history
  • Loading branch information
matteobruni committed Jun 30, 2021
1 parent 3321a95 commit 54c28d1
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 3 deletions.
1 change: 1 addition & 0 deletions core/main/src/Core/Particle.ts
Expand Up @@ -74,6 +74,7 @@ export class Particle implements IParticle {
maxDistance?: number;
moveDrift?: number;
moveSpeed?: number;
maxSpeed?: number;
sizeAnimationSpeed?: number;

readonly close: boolean;
Expand Down
12 changes: 9 additions & 3 deletions core/main/src/Core/Particle/Mover.ts
Expand Up @@ -72,9 +72,15 @@ export class Mover {
particle.velocity.multTo(1 - particle.options.move.decay);

const velocity = particle.velocity.mult(moveSpeed);

if (gravityOptions.enable && Math.abs(velocity.y) >= gravityOptions.maxSpeed && gravityOptions.maxSpeed > 0) {
velocity.y = gravityFactor * gravityOptions.maxSpeed;
const maxSpeed = particle.maxSpeed ?? container.retina.maxSpeed;

if (
gravityOptions.enable &&
((!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed) ||
(gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) &&
gravityOptions.maxSpeed > 0
) {
velocity.y = gravityFactor * maxSpeed;

if (moveSpeed) {
particle.velocity.y = velocity.y / moveSpeed;
Expand Down
3 changes: 3 additions & 0 deletions core/main/src/Core/Retina.ts
Expand Up @@ -22,6 +22,7 @@ export class Retina {
sizeAnimationSpeed!: number;
pixelRatio!: number;
bounceModeDistance!: number;
maxSpeed!: number;

constructor(private readonly container: Container) {}

Expand Down Expand Up @@ -81,6 +82,7 @@ export class Retina {
this.linksDistance = particles.links.distance * ratio;
this.linksWidth = particles.links.width * ratio;
this.sizeAnimationSpeed = particles.size.animation.speed * ratio;
this.maxSpeed = particles.move.gravity.maxSpeed * ratio;

const modes = options.interactivity.modes;

Expand Down Expand Up @@ -110,6 +112,7 @@ export class Retina {
particle.sizeAnimationSpeed = particlesOptions.size.animation.speed * ratio;
particle.maxDistance = particlesOptions.move.distance * ratio;
particle.wobbleDistance = NumberUtils.getRangeValue(particlesOptions.wobble.distance) * ratio;
particle.maxSpeed = particlesOptions.move.gravity.maxSpeed * ratio;
}

private handleMotionChange(mediaQuery: MediaQueryList): void {
Expand Down

0 comments on commit 54c28d1

Please sign in to comment.