protected override ParticleSettings CreateSettingsForExplosionSmoke() { ParticleSettings settings = new ParticleSettings(); settings.EffectName = @"Effects/ParticleEffect"; settings.TextureName = @"Textures/VioletParticle"; settings.MaxParticles = 200; settings.Duration = TimeSpan.FromSeconds(4); settings.MinHorizontalVelocity = 0; settings.MaxHorizontalVelocity = 0.5f; settings.MinVerticalVelocity = -0.1f; settings.MaxVerticalVelocity = 0.5f; settings.Gravity = new Vector3(0, -0.2f, 0); settings.EndVelocity = 0; settings.MinColor = Color.LightGray; settings.MaxColor = Color.White; settings.MinRotateSpeed = -2; settings.MaxRotateSpeed = 2; settings.MinStartSize = 0.01f; settings.MaxStartSize = 0.02f; settings.MinEndSize = 0.05f; settings.MaxEndSize = 0.1f; settings.SourceBlend = Blend.SourceAlpha; settings.DestinationBlend = Blend.One; return settings; }
protected override ParticleSettings CreateSettingsForExplosion() { ParticleSettings settings = new ParticleSettings(); settings.EffectName = @"Effects/ParticleEffect"; settings.TextureName = @"Textures/VioletParticle"; settings.MaxParticles = 100; settings.Duration = TimeSpan.FromSeconds(2); settings.DurationRandomness = 1; settings.MinHorizontalVelocity = 0.2f; settings.MaxHorizontalVelocity = 0.3f; settings.MinVerticalVelocity = -0.2f; settings.MaxVerticalVelocity = 0.2f; settings.EndVelocity = 0; settings.MinColor = Color.DarkGray; settings.MaxColor = Color.Gray; settings.MinRotateSpeed = -1; settings.MaxRotateSpeed = 1; settings.MinStartSize = 0.1f; settings.MaxStartSize = 0.1f; settings.MinEndSize = 1; settings.MaxEndSize = 2; // Use additive blending. settings.SourceBlend = Blend.SourceAlpha; settings.DestinationBlend = Blend.One; return settings; }
protected override ParticleSettings CreateSettingsForFire() { ParticleSettings settings = new ParticleSettings(); settings.EffectName = @"Effects/ParticleEffect"; settings.TextureName = @"Textures/BlueParticle"; settings.MaxParticles = 1300; settings.Duration = TimeSpan.FromSeconds(1); settings.DurationRandomness = 1; settings.MinHorizontalVelocity = 0; settings.MaxHorizontalVelocity = 0.15f * scale; settings.MinVerticalVelocity = -0.1f * scale; settings.MaxVerticalVelocity = 0.1f * scale; // Set gravity upside down, so the flames will 'fall' upward. settings.Gravity = new Vector3(0, 0.15f * scale, 0); settings.MinColor = new Color(255, 255, 255, 10); settings.MaxColor = new Color(255, 255, 255, 40); settings.MinStartSize = 0.05f * scale; settings.MaxStartSize = 0.1f * scale; settings.MinEndSize = 0.1f * scale; settings.MaxEndSize = 0.4f * scale; // Use additive blending. settings.SourceBlend = Blend.SourceAlpha; settings.DestinationBlend = Blend.One; return settings; }
protected override ParticleSettings CreateSettingsForSmokePlume() { ParticleSettings settings = new ParticleSettings(); settings.EffectName = @"Effects/ParticleEffect"; settings.TextureName = @"Textures/BlueParticle"; settings.MaxParticles = 600; settings.Duration = TimeSpan.FromSeconds(3); settings.MinHorizontalVelocity = -0.05f * scale; settings.MaxHorizontalVelocity = 0.05f * scale; settings.MinVerticalVelocity = 0.2f * scale; settings.MaxVerticalVelocity = 0.4f * scale; // Create a wind effect by tilting the gravity vector sideways. settings.Gravity = new Vector3(0, -0.05f * scale, 0); settings.EndVelocity = 0.75f * scale; settings.MinRotateSpeed = -1; settings.MaxRotateSpeed = 1; settings.MinStartSize = 0.01f * scale; settings.MaxStartSize = 0.02f * scale; settings.MinEndSize = 0.02f * scale; settings.MaxEndSize = 0.04f * scale; settings.SourceBlend = Blend.SourceAlpha; settings.DestinationBlend = Blend.One; return settings; }
protected override ParticleSettings CreateSettingsForTrail() { ParticleSettings settings = new ParticleSettings(); settings.EffectName = @"Effects/ParticleEffect"; settings.TextureName = @"Textures/VioletParticle"; settings.MaxParticles = 1000; settings.Duration = TimeSpan.FromSeconds(3); settings.DurationRandomness = 1.5f; settings.EmitterVelocitySensitivity = 0.1f; settings.MinHorizontalVelocity = 0; settings.MaxHorizontalVelocity = 0.01f; settings.MinVerticalVelocity = -0.01f; settings.MaxVerticalVelocity = 0.01f; settings.MinColor = new Color(255, 255, 255, 50); settings.MaxColor = new Color(255, 255, 255, 90); settings.MinRotateSpeed = -4; settings.MaxRotateSpeed = 4; settings.MinStartSize = 0.05f; settings.MaxStartSize = 0.1f; settings.MinEndSize = 0.1f; settings.MaxEndSize = 0.4f; settings.SourceBlend = Blend.SourceAlpha; settings.DestinationBlend = Blend.One; return settings; }
/// <summary> /// Derived particle system classes should override this method /// and use it to initalize their tweakable settings. /// </summary> protected abstract void InitializeSettings(ParticleSettings settings);