public override ParticleEmitter Create(ParticleSystem ps) { var emitter = new PointEmitter(ps); emitterList.Add(emitter); return(emitter); }
public override ParticleEmitter Create() { PointEmitter emitter = new PointEmitter(); emitterList.Add(emitter); return(emitter); }
/// <summary> /// Handles the Click event of the btnNewEmitter control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> void btnNewEmitter_Click(object sender, EventArgs e) { // Ensure a valid ParticleEffect is selected var pe = ParticleEffect; if (pe == null) { return; } // Add new emitter. Default to PointEmitter. Type can be changed by the user later. var emitter = new PointEmitter(pe); if (emitter.Sprite.GrhData == null && _defaultEmitterSprite != null) { emitter.Sprite.SetGrh(_defaultEmitterSprite); } if (!lstEmitters.Items.Contains(emitter)) { lstEmitters.Items.Add(emitter); } lstEmitters.RebuildList(ParticleEffect); lstEmitters.SelectedItem = emitter; }
/// <summary> /// Instantiates the default particle effect. /// </summary> private ParticleEffect InstantiateDefaultParticleEffect() { Trace.WriteLine("Instantiating default particle effect...", "CORE"); ParticleEffect effect = new ParticleEffect(); AbstractEmitter emiter = new PointEmitter { Budget = 5000, Enabled = true, //MinimumTriggerPeriod = 0f, Name = "Basic Emitter", ParticleTexture = this.DefaultParticleTexture, //ParticleTextureAssetName = "FlowerBurst", ReleaseColour = Color.White.ToVector3(), ReleaseOpacity = 1f, ReleaseQuantity = 10, ReleaseScale = new Range(24f, 40f), // { Value = 32f, Variation = 16f }, ReleaseSpeed = new Range(12f, 37f), // { Value = 25f, Variation = 25f }, Term = 1f, Modifiers = new ModifierCollection(), Controllers = new ControllerPipeline() }; emiter.Initialise(); effect.Emitters.Add(emiter); return(effect); }
public override void Update(Renderer renderer) { base.Update(renderer); if (iceSpikeEmitter == null && renderer.IceSpikeSystem.EmitterCount < 30 // safety number... ) { iceSpikeEmitter = new PointEmitter(renderer.Time.PausableLast / 1000d, Position, 2500.0f); renderer.IceSpikeSystem.AddEmitter(iceSpikeEmitter); } if (dead && iceSpikeEmitter != null) { iceSpikeEmitter.Active = false; } if (iceSpikeEmitter != null) { iceSpikeEmitter.SetPoint(renderer.Time.PausableAt / 1000d, Position); Debug.Assert(iceSpikeEmitter.Times[0] == renderer.Time.PausableLast / 1000d); Debug.Assert(iceSpikeEmitter.Times[1] == renderer.Time.PausableAt / 1000d); //Console.WriteLine("Emitter {0}: {1}, {2}", iceSpikeEmitter.EmitterIndex, Position, direction); renderer.IceSpikeSystem.SetPosition(iceSpikeEmitter.EmitterIndex, Position); renderer.IceSpikeSystem.SetDirection(iceSpikeEmitter.EmitterIndex, direction); renderer.IceSpikeSystem.SetDead(iceSpikeEmitter.EmitterIndex, dead); } }
public override ParticleEmitter Create() { PointEmitter emitter = new PointEmitter(); emitterList.Add(emitter); return emitter; }
public override ParticleEmitter Create( ParticleSystem ps ) { var emitter = new PointEmitter( ps ); emitterList.Add( emitter ); return emitter; }
public Pax4ParticleEffect() { _current = this; if (_particleRenderer == null) { _particleRenderer = new SpriteBatchRenderer { GraphicsDeviceService = Pax4Game._graphicsDeviceManager }; _particleRenderer.LoadContent(Pax4Game._current.Content); _particleRenderer3 = new QuadRenderer(10000) { GraphicsDeviceService = Pax4Game._graphicsDeviceManager }; _particleRenderer3.LoadContent(Pax4Game._current.Content); } ParticleEffect particleEffect = null; Texture2D particleTexture = null; AbstractEmitter emitter = null; float scale = 1.0f; if (Pax4Camera._backBufferWidth <= 320) { scale = Pax4Camera._current._scale.X * 0.9f; } else { scale = Pax4Camera._current._scale.X; } int budgetFactor = 3; #region Default //**************************** //Default //**************************** budgetFactor = 3; particleEffect = new ParticleEffect(); Pax4Texture2D._current.Load("ParticleEffect/FlowerBurst"); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/FlowerBurst"); emitter = new PointEmitter { Budget = 64 * budgetFactor, Term = 1.0f, ReleaseQuantity = 5, Enabled = true, ReleaseSpeed = new Range(0.0f, 50.0f), // { Value = 25f, Variation = 25f }, ReleaseColour = new ColourRange { Red = new Range(0.0f, 0.8f), Green = new Range(0.0f, 1.0f), Blue = new Range(0.0f, 1.0f) }, ReleaseOpacity = new Range(1.0f, 1.0f), ReleaseScale = new Range(16.0f * scale, 48.0f * scale), // { Value = 32f, Variation = 16f }, //ReleaseRotation //ReleaseImpulse ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new OpacityFastFadeModifier { InitialOpacity = 1.0f } }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); _particleEffectDefault = particleEffect; AddUpdate(particleEffect); AddDraw(particleEffect); #endregion //Default #region IceStarTrail //**************************** //IceStarTrail //**************************** budgetFactor = 1; particleEffect = new ParticleEffect(); Pax4Texture2D._current.Load("ParticleEffect/Star"); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/Star"); emitter = new PointEmitter//Sparkles { Budget = 42 * budgetFactor, Term = 0.5f, ReleaseQuantity = 1, Enabled = true, ReleaseSpeed = new Range(32.0f, 160.0f), ReleaseColour = new ColourRange { Red = new Range(1.0f, 1.0f), Green = new Range(1.0f, 1.0f), Blue = new Range(1.0f, 1.0f) }, ReleaseOpacity = new Range(1.0f, 1.0f), ReleaseScale = new Range(16.0f * scale, 16.0f * scale), ReleaseRotation = new RotationRange { Yaw = new Range(0.0f, 0.0f), Pitch = new Range(0.0f, 0.0f), Roll = new Range(0.0f, 6.28f), }, //ReleaseImpulse ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new OpacityInterpolator3 { InitialOpacity = 0.0f, MedianOpacity = 1.0f, Median = 0.75f, FinalOpacity = 0.0f }, new DampingModifier { DampingCoefficient = 3.0f }, new ColourInterpolator2 { InitialColour = new Vector3(0.7529412f, 0.7529412f, 1.0f), FinalColour = new Vector3(0.7529412f, 1.0f, 1.0f) }, new LinearGravityModifier { GravityVector = new Vector3(0.0f, 1.0f, 0.0f), Strength = 150.0f } }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/Star"); emitter = new PointEmitter//Flakes { Budget = 42 * budgetFactor, Term = 0.5f, ReleaseQuantity = 1, Enabled = true, ReleaseSpeed = new Range(0.0f, 48.0f), ReleaseColour = new ColourRange { Red = new Range(1.0f, 1.0f), Green = new Range(1.0f, 1.0f), Blue = new Range(1.0f, 1.0f) }, ReleaseOpacity = new Range(1.0f, 1.0f), ReleaseScale = new Range(8.0f * scale, 24.0f * scale), ReleaseRotation = new RotationRange { Yaw = new Range(0.0f, 0.0f), Pitch = new Range(0.0f, 0.0f), Roll = new Range(0.0f, 3.14f), }, //ReleaseImpulse ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new ColourInterpolator2 { InitialColour = new Vector3(0.7529412f, 0.7529412f, 1.0f), FinalColour = new Vector3(0.7529412f, 1.0f, 1.0f) }, new OpacityInterpolator2 { InitialOpacity = 1.0f, FinalOpacity = 0.0f }, }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); _particleEffectIceStarTrail = particleEffect; AddUpdate(particleEffect); AddDraw(particleEffect); #endregion //IceStarTrail #region ChainLinkBreak //**************************** //ChainLinkBreak //**************************** budgetFactor = 5; particleEffect = new ParticleEffect(); Pax4Texture2D._current.Load("ParticleEffect/Particle005"); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/Particle005"); emitter = new PointEmitter//Sparks { Budget = 20 * budgetFactor, Term = 0.75f, ReleaseQuantity = 20, Enabled = true, ReleaseSpeed = new Range(0.0f, 250.0f), ReleaseColour = new ColourRange { Red = new Range(1.0f, 1.0f), Green = new Range(1.0f, 1.0f), Blue = new Range(1.0f, 1.0f) }, ReleaseOpacity = new Range(1.0f, 1.0f), ReleaseScale = new Range(0.0f * scale, 8.0f * scale), //ReleaseRotation, //ReleaseImpulse, ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new OpacityInterpolator2 { InitialOpacity = 1.0f, FinalOpacity = 0.0f }, new DampingModifier { DampingCoefficient = 2.0f }, new LinearGravityModifier { GravityVector = new Vector3(0.0f, 1.0f, 0.0f), Strength = 1000.0f } }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/Particle005"); emitter = new PointEmitter//Flash { Budget = 1 * budgetFactor, Term = 0.1f, ReleaseQuantity = 1, Enabled = true, ReleaseSpeed = new Range(50.0f, 50.0f), ReleaseColour = new ColourRange { Red = new Range(1.0f, 1.0f), Green = new Range(1.0f, 1.0f), Blue = new Range(1.0f, 1.0f) }, ReleaseOpacity = new Range(0.0f, 0.5f), ReleaseScale = new Range(100.0f * scale, 100.0f * scale), //ReleaseRotation, //ReleaseImpulse, ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new OpacityInterpolator2 { InitialOpacity = 1.0f, FinalOpacity = 0.0f } }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); _particleEffectChainLinkBreak = particleEffect; //_particleEffectPart.Add(_particleEffectChainLinkBreak); #endregion //ChainLinkBreak }