From 91b95d03e2814f9203c2c0e18050dfebde47b961 Mon Sep 17 00:00:00 2001 From: Mathieu Hermann Date: Sat, 16 Nov 2024 15:39:59 +0100 Subject: [PATCH] refactor(particles): improve particles design and style --- src/app/game/actors/skier.ts | 30 ++++++++++++++++--------- src/app/game/utils/particles-builder.ts | 2 +- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/app/game/actors/skier.ts b/src/app/game/actors/skier.ts index c1a7993..9302383 100644 --- a/src/app/game/actors/skier.ts +++ b/src/app/game/actors/skier.ts @@ -225,7 +225,9 @@ export class Skier extends Actor { private emitSlidingParticles(speedPercentage: number, slidingIntensity: number, skierAction: SkierActions): void { this.particlesEmitter.pos.y = 2.5; this.particlesEmitter.radius = 6; - this.particlesEmitter.particleLife = 1500; + this.particlesEmitter.particleLife = 2500; + this.particlesEmitter.minVel = 0; + this.particlesEmitter.maxVel = 50; if (skierAction === SkierActions.SLIDE_LEFT) { this.particlesEmitter.maxAngle = 1.6; this.particlesEmitter.minAngle = 0.5; @@ -235,37 +237,43 @@ export class Skier extends Actor { this.particlesEmitter.minAngle = 1.6; this.particlesEmitter.pos.x = -8; } - this.particlesEmitter.emitParticles(speedPercentage * slidingIntensity * 35); + this.particlesEmitter.emitParticles(speedPercentage * slidingIntensity * 60); } private emitCarvingParticles(speedPercentage: number, carvingIntensity: number, skierAction: SkierActions): void { - this.particlesEmitter.pos.y = 2.5; + this.particlesEmitter.pos.y = -1; this.particlesEmitter.radius = 1; - this.particlesEmitter.particleLife = 450; - this.particlesEmitter.maxAngle = 4.8; - this.particlesEmitter.minAngle = 4.6; + this.particlesEmitter.particleLife = 2500; + this.particlesEmitter.minVel = -5; + this.particlesEmitter.maxVel = 5; + this.particlesEmitter.maxAngle = 1; + this.particlesEmitter.minAngle = 1; this.particlesEmitter.pos.x = skierAction === SkierActions.CARVE_LEFT ? 8 : -8; - this.particlesEmitter.emitParticles(speedPercentage * carvingIntensity * 25); + this.particlesEmitter.emitParticles(speedPercentage * carvingIntensity * 15); } private emitBrakingParticles(speedPercentage: number): void { this.particlesEmitter.pos.y = -10; this.particlesEmitter.radius = 6; - this.particlesEmitter.particleLife = 1500; + this.particlesEmitter.particleLife = 2500; + this.particlesEmitter.minVel = 10; + this.particlesEmitter.maxVel = 50; this.particlesEmitter.maxAngle = 6; this.particlesEmitter.minAngle = 3.4; this.particlesEmitter.pos.x = 0; - this.particlesEmitter.emitParticles(speedPercentage * 25); + this.particlesEmitter.emitParticles(speedPercentage * 40); } private emitRidingParticles(speedPercentage: number): void { this.particlesEmitter.pos.y = 0; - this.particlesEmitter.radius = 3; + this.particlesEmitter.radius = 8; this.particlesEmitter.particleLife = 500; + this.particlesEmitter.minVel = 0; + this.particlesEmitter.maxVel = 0; this.particlesEmitter.maxAngle = 6; this.particlesEmitter.minAngle = 3.4; this.particlesEmitter.pos.x = 0; - this.particlesEmitter.emitParticles(speedPercentage * 10); + this.particlesEmitter.emitParticles(speedPercentage * 2); } private hasBreakingIntention(engine: Engine): boolean { diff --git a/src/app/game/utils/particles-builder.ts b/src/app/game/utils/particles-builder.ts index 958b045..63dbb4e 100644 --- a/src/app/game/utils/particles-builder.ts +++ b/src/app/game/utils/particles-builder.ts @@ -16,7 +16,7 @@ export class ParticlesBuilder { particleLife: 1200, maxSize: 4, minSize: 0.75, - beginColor: Color.ExcaliburBlue, + beginColor: Color.fromRGB(23, 106, 170, 0.1), isEmitting: false }); return emitter;