void ParticleNode::updateCurrent(sf::Time dt, CommandQueue &/*commands*/) { while(!mParticles.empty() && mParticles.front().lifetime <= sf::Time::Zero) mParticles.pop_front(); for(Particle& p : mParticles) { p.lifetime -= dt; for(Affector& affector : mAffectors) { affector(p, dt); } } mNeedsVertexUpdate = true; }
void ParticleNode::updateCurrent(sf::Time dt, CommandQueue& commands) { if (mParticles.empty()) return; while (!mParticles.empty() && mParticles.front().lifetime <= sf::Time::Zero) mParticles.pop_front(); for (auto& particle : mParticles) { particle.lifetime -= dt; particle.position += dt.asSeconds() * particle.velocity; particle.rotation += dt.asSeconds() * particle.rotationSpeed; for (const auto& affector : mAffectors) affector(particle, dt); } mNeedsVertexUpdate = true; }