コード例 #1
0
ファイル: particlenode.cpp プロジェクト: Lo-X/ludumdare31
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;
}
コード例 #2
0
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;
}