public ParticalEffect BuildClockWorkCloud(ContentManager content) { ParticalEffect pe = new ParticalEffect(); ConeEmitter ce = new ConeEmitter(5f) { MinRadious = MathHelper.PiOver2 - .2f, MaxRadious = MathHelper.PiOver2 + .2f, ParticalSpeed = 2, ReleaseAmount = .05f, //1 would be no delay 0 would never release Function = EmmiterFunction.Explosive, Initial_LifeTime = new FloatRange(1, 2), Initial_Scale = new FloatRange(.1f, .2f), Initial_Angulor_Velocity = new FloatRange(-.1f, .1f), }; ce.SetTexture(content.Load <Texture2D>("Cloud003")); ce.AddModifyer(new LinearScaleModifyer(ce) { EndScale = 10, }); ce.AddModifyer(new DampaningModifyer(.01f, ce) { DampenAngulorVelocity = true, AngulorDampaningAmount = .01f, }); ce.AddModifyer(new StateFadeModifyer(ce) { InitialFade = 0, MiddleLifeTime = .1f, MiddleStateFade = .3f, EndFade = 0f, }); ce.AddModifyer(new LinearGravityModifyer(ce) { Gravity = new Vector2(0, -1f), }); pe.AddEmitter(ce); return(pe); }
public void Trigger(Vector2 position, int amount, int velocity) { if (amount == 0) { return; } foreach (Emitter em in Emitters) { ConeEmitter ce = em as ConeEmitter; if (ce != null) { ce.ParticalSpeed = velocity; } em.Trigger(position, amount); } }
private void SetupParticleSystem() { particleSystem = new ParticleSystem(); shipEffect = new ParticleEffect(); Texture2D texture1 = Content.Load <Texture2D>("Images/smoke2"); Texture2D texture2 = Content.Load <Texture2D>("Images/smoke3"); ParticleEmitter shipEmitter = new ConeEmitter(Vector2.Zero, MathHelper.ToRadians(90)); shipEmitter.AddTexture(texture1); shipEmitter.AddTexture(texture2); shipEmitter.Quantity = 10; shipEmitter.AddPropertyGenerator(new RandomSpeedGenerator(2.01f, 4.0f, 1.0f)); shipEmitter.AddPropertyGenerator(new ConstantColorGenerator(Color.Green * 0.7f)); shipEmitter.AddPropertyGenerator(new RandomTTLGenerator(2.0f, 5.0f, 1.0f)); shipEmitter.AddParticleModifier(new ScaleModifier2(0.1f, 2.0f)); shipEmitter.AddParticleModifier(new DepthModifier2(0.0f, 1.0f)); shipEmitter.AddParticleModifier(new OpacityModifier2(0.6f, 0f)); shipEmitter.AddParticleModifier(new DampingLinearVelocityModifier(0.99f)); shipEmitter.AddParticleModifier(new RotationModifier2(-1.0f, 1.0f)); shipEffect.AddEmitter(shipEmitter); particleSystem.AddEffect(shipEffect); shipEffect2 = new ParticleEffect(); ParticleEmitter shipEmitter2 = new ConeEmitter(Vector2.Zero, MathHelper.ToRadians(90)); shipEmitter2.AddTexture(texture1); shipEmitter2.AddTexture(texture2); shipEmitter2.Quantity = 10; shipEmitter2.AddPropertyGenerator(new RandomSpeedGenerator(2.01f, 4.0f, 1.0f)); shipEmitter2.AddPropertyGenerator(new ConstantColorGenerator(Color.Yellow * 0.7f)); shipEmitter2.AddPropertyGenerator(new RandomTTLGenerator(2.0f, 5.0f, 1.0f)); shipEmitter2.AddParticleModifier( new ScaleModifier2(0.1f, 2.0f)); shipEmitter2.AddParticleModifier( new DepthModifier2(0.0f, 1.0f)); shipEmitter2.AddParticleModifier( new OpacityModifier2(0.6f, 0f)); shipEmitter2.AddParticleModifier(new DampingLinearVelocityModifier(0.99f)); shipEmitter2.AddParticleModifier(new RotationModifier2(-1.0f, 1.0f)); shipEffect2.AddEmitter(shipEmitter2); particleSystem.AddEffect(shipEffect2); }