public ParticleEffect CreateEffect(IResourceDictionary resourceDictionary) { var effect = new ParticleEffect { Emitters = new EmitterCollection { new PointEmitter { Budget = 32, Term = 1.0f, ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.BulletTrail"), BlendMode = EmitterBlendMode.Alpha, ReleaseColour = new ColourRange { Red = 0.0f, Green = 0.5f, Blue = 0.1f }, ReleaseOpacity = 0.0f, ReleaseQuantity = 1, ReleaseRotation = new RotationRange { Roll = new Range(0f, 1.5f) }, ReleaseScale = new Range(20f, 20f), ReleaseSpeed = new Range(0f, 100f), Modifiers = new ModifierCollection { new ScaleInterpolator3 { FinalScale = 0f, InitialScale = 20f, Median = 0.25f, MedianScale = 20f }, new ColourInterpolator2 { FinalColour = new Vector3(1f, 0.25f, 0f), InitialColour = new Vector3(0f, 0.5f, 1f) }, new OpacityInterpolator3 { InitialOpacity = 0.0f, FinalOpacity = 0.5f, Median = 0.1f, MedianOpacity = 1.0f } }, }, }, }; foreach (var emitter in effect.Emitters) { emitter.Initialise(); } return effect; }
public ParticleEffect CreateEffect(IResourceDictionary resourceDictionary) { var effect = new ParticleEffect { Emitters = new EmitterCollection { new PointEmitter { Name = "Sparks", Budget = 35, Term = 0.75f, ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.Sparks"), BlendMode = EmitterBlendMode.Alpha, ReleaseColour = new ColourRange { Red = 1f, Green = new Range(0.4f, 0.8f), Blue = 0f }, ReleaseOpacity = 1.0f, ReleaseQuantity = 35, ReleaseRotation = new RotationRange { Roll = new Range(0f, 0f) }, ReleaseScale = new Range(3f, 7f), ReleaseSpeed = new Range(0f, 250f), Modifiers = new ModifierCollection { new OpacityInterpolator2 { FinalOpacity = 0f, InitialOpacity = 1f }, new DampingModifier { DampingCoefficient = 2f } }, }, }, }; effect.Emitters["Sparks"].Controllers.AddFirst(new CooldownController { CooldownPeriod = 5.0f }); foreach (var emitter in effect.Emitters) { emitter.Initialise(); } return effect; }
public ParticleEffect CreateEffect(IResourceDictionary resourceDictionary) { var effect = new ParticleEffect { Emitters = new EmitterCollection { new BoxEmitter { Name = "SmallBubbles", Budget = 50, Height = 5f, Width = 100f, Depth = 0f, Term = 1.0f, ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.SmallBubbles"), BlendMode = EmitterBlendMode.Alpha, ReleaseColour = new ColourRange { Red = 1.0f, Green = 1.0f, Blue = 1.0f }, ReleaseOpacity = 1.0f, ReleaseQuantity = 3, ReleaseRotation = new RotationRange { Roll = new Range(0f, 1.5f) }, ReleaseScale = new Range(40f, 56f), ReleaseSpeed = new Range(0f, 25f), Modifiers = new ModifierCollection { new OpacityInterpolator2 { InitialOpacity = 1.0f, FinalOpacity = 0.5f }, new LinearGravityModifier { GravityVector = new Vector3(0f, -1f, 0f), Strength = 150f }, }, }, new CircleEmitter { Name = "Bubbles", Budget = 50, Term = 1.5f, Radiate = true, Radius = 50f, Shell = true, ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.Bubble"), BlendMode = EmitterBlendMode.Alpha, ReleaseColour = new ColourRange { Blue = new Range(0.66f, 1.0f), Red = 57f, Green = new Range(0.24f, 0.64f) }, ReleaseOpacity = 1.0f, ReleaseQuantity = 2, ReleaseRotation = new RotationRange { Roll = 0f }, ReleaseScale = new Range(24f, 40f), ReleaseSpeed = new Range(0f, 25f), Modifiers = new ModifierCollection { new OpacityInterpolator2 { InitialOpacity = 1.0f, FinalOpacity = 0.5f }, new LinearGravityModifier { GravityVector = new Vector3(0f, -1f, 0f), Strength = 150f } }, }, }, }; effect.Emitters["Bubbles"].Controllers.AddFirst(new CooldownController { CooldownPeriod = 0.15f }); effect.Emitters["SmallBubbles"].Controllers.AddFirst(new CooldownController { CooldownPeriod = 0.1f }); foreach (var emitter in effect.Emitters) { emitter.Initialise(); // emitter.Controllers.AddLast(new CooldownController { CooldownPeriod = 0.5f }); } return effect; }
public ParticleEffect CreateEffect(IResourceDictionary resourceDictionary) { var effect = new ParticleEffect { Emitters = new EmitterCollection { new PointEmitter { Budget = 15, Term = 0.75f, ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.Star"), BlendMode = EmitterBlendMode.Alpha, ReleaseColour = new ColourRange { Red = 1.0f, Green = 0.88f, Blue = 0.75f }, ReleaseOpacity = 1.0f, ReleaseQuantity = 1, ReleaseRotation = new RotationRange { Roll = new Range(0f, 0f) }, ReleaseScale = new Range(24f, 72f), ReleaseSpeed = new Range(32f, 160f), Modifiers = new ModifierCollection { new ScaleInterpolator3 { FinalScale = 16f, InitialScale = 48f, Median = 0.4f, MedianScale = 64f }, new OpacityInterpolator2 { FinalOpacity = 0f, InitialOpacity = 1f }, new ColourInterpolator2 { InitialColour = new Vector3(1f, 0.5f, 1f), FinalColour = new Vector3(1f, 0.5f, 0f) }, new DampingModifier { DampingCoefficient = 5f } }, }, new PointEmitter { Budget = 100, Term = 1.0f, ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.Star"), BlendMode = EmitterBlendMode.Alpha, ReleaseColour = new ColourRange { Red = 1.0f, Green = 1f, Blue = 1f }, ReleaseOpacity = 1.0f, ReleaseQuantity = 5, ReleaseRotation = new RotationRange { Roll = new Range(0f, 0f) }, ReleaseScale = new Range(16f, 16f), ReleaseSpeed = new Range(0f, 48f), Modifiers = new ModifierCollection { new OpacityInterpolator2 { FinalOpacity = 0f, InitialOpacity = 1f }, new ColourInterpolator2 { InitialColour = new Vector3(1f, 0.5f, 1f), FinalColour = new Vector3(0.75f, 0.25f, 0f) }, }, }, }, }; foreach (var emitter in effect.Emitters) { emitter.Initialise(); } return effect; }