SpaceRun.ParticleSystem.LogicUpdate C# (CSharp) Method

LogicUpdate() public method

public LogicUpdate ( GameTime time, float t ) : void
time Microsoft.Xna.Framework.GameTime
t float
return void
        public override void LogicUpdate(GameTime time, float t)
        {
            // Track entity
            if (trackedEntity != null)
            {
                this.position = trackedEntity.position;
                this.heading = trackedEntity.heading;
            }

            // Add new
            if (particles.Count < maxNumberOfParticles)
            {
                foreach (ParticleSource source in particleSources)
                {
                    Particle p = source.CreateParticle(time, t, this);
                    if (p != null) particles.Add(p);
                }
            }

            // Update
            foreach (Particle p in particles)
            {
                p.Update(t, this);
            }

            // Cull dead
            particles.RemoveAll(p => p.IsDead());
        }