示例#1
0
        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);
     }
 }
示例#3
0
        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);
        }