public ParticleController(Game game, CarActor carActor)
            : base(game)
        {
            this.carActor = carActor;

            particleSystems = new List<ParticleSystem>();
            particleSystems.Add(new ParticleSystem(game, game.Content, "Particles/FireSettings"));
            particleSystems.Add(new ParticleSystem(game, game.Content, "Particles/ProjectileTrailSettings"));

            fireEmitter = new ParticleEmitter(particleSystems[0], 10f, Vector3.Zero);
            smokeEmitter = new ParticleEmitter(particleSystems[1], 50f, Vector3.Zero);
        }
        /// <summary>
        /// Constructs a new projectile.
        /// </summary>
        public Projectile(ParticleSystem explosionParticles,
                          ParticleSystem explosionSmokeParticles,
                          ParticleSystem projectileTrailParticles)
        {
            this.explosionParticles = explosionParticles;
            this.explosionSmokeParticles = explosionSmokeParticles;

            // Start at the origin, firing in a random (but roughly upward) direction.
            position = Vector3.Zero;

            velocity.X = (float)(random.NextDouble() - 0.5) * sidewaysVelocityRange;
            velocity.Y = (float)(random.NextDouble() + 0.5) * verticalVelocityRange;
            velocity.Z = (float)(random.NextDouble() - 0.5) * sidewaysVelocityRange;

            // Use the particle emitter helper to output our trail particles.
            trailEmitter = new ParticleEmitter(projectileTrailParticles,
                                               trailParticlesPerSecond, position);
        }