From 1da68e02146056ce922d853db8a68c6ea7a86820 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Fri, 16 Oct 2015 18:10:50 -0700 Subject: [PATCH] Fix particle bug by having lifetimes increase --- libraries/entities/src/ParticleEffectEntityItem.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libraries/entities/src/ParticleEffectEntityItem.cpp b/libraries/entities/src/ParticleEffectEntityItem.cpp index 29e2aa512d..ddd79375b3 100644 --- a/libraries/entities/src/ParticleEffectEntityItem.cpp +++ b/libraries/entities/src/ParticleEffectEntityItem.cpp @@ -644,14 +644,13 @@ void ParticleEffectEntityItem::stepSimulation(float deltaTime) { // update particles between head and tail for (quint32 i = _particleHeadIndex; i != _particleTailIndex; i = (i + 1) % _maxParticles) { - _particleLifetimes[i] -= deltaTime; + _particleLifetimes[i] += deltaTime; // if particle has died. - if (_particleLifetimes[i] <= 0.0f || _lifespan == 0.0f) { + if (_particleLifetimes[i] >= _lifespan || _lifespan < EPSILON) { // move head forward _particleHeadIndex = (_particleHeadIndex + 1) % _maxParticles; - } - else { + } else { float age = 1.0f - _particleLifetimes[i] / _lifespan; // 0.0 .. 1.0 updateRadius(i, age); updateColor(i, age); @@ -672,7 +671,7 @@ void ParticleEffectEntityItem::stepSimulation(float deltaTime) { // emit a new particle at tail index. quint32 i = _particleTailIndex; - _particleLifetimes[i] = _lifespan; + _particleLifetimes[i] = 0.0f; // Radius if (_radiusSpread == 0.0f) {