/// <summary> /// Constructs a new particle emitter object. /// </summary> public ParticleEmitterM(ParticleSystemM particleSystem, float particlesPerSecond, Vector3 initialPosition) { this.particleSystem = particleSystem; timeBetweenParticles = 1.0f / particlesPerSecond; previousPosition = initialPosition; }
/// <summary> /// Constructs a new projectile. /// </summary> public ProjectileM(ParticleSystemM explosionParticles, ParticleSystemM explosionSmokeParticles, ParticleSystemM 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 ParticleEmitterM(projectileTrailParticles, trailParticlesPerSecond, position); }
public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; rnd = new Random(); graphics.PreferredBackBufferWidth = 800; graphics.PreferredBackBufferHeight = 600; #if !DEBUG graphics.IsFullScreen = true; #endif #region Manuel // Construct our particle system components. explosionParticles = new ExplosionParticleSystem(this, Content); explosionSmokeParticles = new ExplosionSmokeParticleSystem(this, Content); projectileTrailParticles = new ProjectileTrailParticleSystem(this, Content); smokePlumeParticles = new SmokePlumeParticleSystem(this, Content); fireParticles = new FireParticleSystem(this, Content); // Set the draw order so the explosions and fire // will appear over the top of the smoke. smokePlumeParticles.DrawOrder = 100; explosionSmokeParticles.DrawOrder = 200; projectileTrailParticles.DrawOrder = 300; explosionParticles.DrawOrder = 400; fireParticles.DrawOrder = 500; // Register the particle system components. Components.Add(explosionParticles); Components.Add(explosionSmokeParticles); Components.Add(projectileTrailParticles); Components.Add(smokePlumeParticles); Components.Add(fireParticles); #endregion }