Exemple #1
0
        public override void InitializeParticleProperties(DefaultSpriteParticle cParticle)
        {
            cParticle.Lifetime = DPSFHelper.RandomNumberBetween(.5f, 1);

            cParticle.Position = Emitter.PositionData.Position;

            float randomVelocity = DPSFHelper.RandomNumberBetween(-200, 200);

            currentRotation += (float)Math.PI / 20;
            Vector2 rotatedRandomVector = TankGame.rotateVector(new Vector2(randomVelocity, randomVelocity), currentRotation);

            cParticle.Velocity = new Vector3(rotatedRandomVector.X, rotatedRandomVector.Y, 0);

            cParticle.Width  = DPSFHelper.RandomNumberBetween(2, 6);
            cParticle.Height = DPSFHelper.RandomNumberBetween(2, 12);

            cParticle.Rotation = currentRotation;

            //Vector3 sVelocityMin = new Vector3(-100, 25, -100);
            //Vector3 sVelocityMax = new Vector3(100, 50, 100);
            //cParticle.Velocity = DPSFHelper.RandomVectorBetweenTwoVectors(sVelocityMin, sVelocityMax);

            //cParticle.Velocity = Vector3.Transform(cParticle.Velocity, Emitter.OrientationData.Orientation);

            cParticle.StartColor = startColor;
            cParticle.EndColor   = endColor;
        }
Exemple #2
0
        public override void AutoInitialize(GraphicsDevice cGraphicsDevice, ContentManager cContentManager, SpriteBatch cSpriteBatch)
        {
            InitializeSpriteParticleSystem(cGraphicsDevice, cContentManager, (int)DPSFHelper.RandomNumberBetween(10, 400), (int)DPSFHelper.RandomNumberBetween(10, 400), "Textures/Pixel", cSpriteBatch);

            Name = "Confetti";

            LoadParticleSystem();
        }
Exemple #3
0
 public Spark(TankGame cGame, Vector2 position, int maxParticles, float lifeTime)
     : base(cGame)
 {
     offsetX           = DPSFHelper.RandomNumberBetween(-20, 20);
     offsetY           = DPSFHelper.RandomNumberBetween(-20, 20);
     this.position     = new Vector3(position.X + offsetX, position.Y + offsetY, 0);
     this.maxParticles = maxParticles;
     this.lifeTime     = lifeTime;
 }
Exemple #4
0
        public override void InitializeParticleProperties(DefaultSpriteParticle cParticle)
        {
            cParticle.Lifetime = DPSFHelper.RandomNumberBetween(1, 2);

            cParticle.Position = Emitter.PositionData.Position;

            cParticle.StartSize = 40;
            cParticle.EndSize   = 10;

            cParticle.StartColor = Color.Yellow;
            cParticle.EndColor   = Color.DarkRed;
        }
Exemple #5
0
        public override void LoadParticleSystem()
        {
            ParticleInitializationFunction = InitializeParticleUsingInitialProperties;

            InitialProperties.LifetimeMin           = 1;
            InitialProperties.LifetimeMax           = 20;
            InitialProperties.PositionMin           = Vector3.Zero;
            InitialProperties.PositionMax           = Vector3.Zero;
            InitialProperties.VelocityMin           = new Vector3(-20, 20, 0);
            InitialProperties.VelocityMax           = new Vector3(20, 100, 0);
            InitialProperties.RotationMin           = 0.0f;
            InitialProperties.RotationMax           = 0.0f;
            InitialProperties.RotationalVelocityMin = -MathHelper.Pi;
            InitialProperties.RotationalVelocityMax = MathHelper.Pi;
            InitialProperties.StartWidthMin         = 5;
            InitialProperties.StartWidthMax         = 20;
            InitialProperties.StartHeightMin        = 5;
            InitialProperties.StartHeightMax        = 20;
            InitialProperties.EndWidthMin           = 0;
            InitialProperties.EndWidthMax           = 10;
            InitialProperties.EndHeightMin          = 0;
            InitialProperties.EndHeightMax          = 10;
            InitialProperties.StartColorMin         = Color.Black;
            InitialProperties.StartColorMax         = Color.White;
            InitialProperties.EndColorMin           = Color.Black;
            InitialProperties.EndColorMax           = Color.White;

            ParticleEvents.RemoveAllEvents();
            ParticleSystemEvents.RemoveAllEvents();

            ParticleEvents.AddEveryTimeEvent(UpdateParticlePositionUsingVelocity);
            ParticleEvents.AddEveryTimeEvent(UpdateParticleRotationUsingRotationalVelocity);
            ParticleEvents.AddEveryTimeEvent(UpdateParticleWidthAndHeightUsingLerp);
            ParticleEvents.AddEveryTimeEvent(UpdateParticleColorUsingLerp);

            ParticleEvents.AddEveryTimeEvent(UpdateParticleTransparencyToFadeOutUsingLerp, 100);

            ParticleSystemEvents.LifetimeData.EndOfLifeOption = CParticleSystemEvents.EParticleSystemEndOfLifeOptions.Destroy;
            ParticleSystemEvents.LifetimeData.Lifetime        = 20;
            ParticleSystemEvents.AddTimedEvent(0.0f, UpdateParticleSystemEmitParticlesAutomaticallyOn);
            ParticleSystemEvents.AddTimedEvent(.6f, UpdateParticleSystemEmitParticlesAutomaticallyOff);

            Emitter.ParticlesPerSecond    = DPSFHelper.RandomNumberBetween(100, 2000);
            Emitter.PositionData.Position = position;
        }
Exemple #6
0
        public override void InitializeParticleProperties(DefaultSpriteParticle cParticle)
        {
            cParticle.Lifetime = DPSFHelper.RandomNumberBetween(.1f, lifeTime / 2);

            cParticle.Position = Emitter.PositionData.Position;

            currentRotation += (float)Math.PI / 10;
            Vector2 rotatedRandomVector = TankGame.rotateVector(originalVector, currentRotation);

            cParticle.Velocity = new Vector3(rotatedRandomVector.X * 60, rotatedRandomVector.Y * 60, 0);

            cParticle.Size = DPSFHelper.RandomNumberBetween(1, 4);

            cParticle.Rotation = currentRotation;

            cParticle.StartColor = Color.Yellow;
            cParticle.EndColor   = Color.Red;

            cParticle.Friction = DPSFHelper.RandomNumberBetween(50, 200);
        }
Exemple #7
0
        public override void LoadParticleSystem()
        {
            ParticleInitializationFunction = InitializeParticleProperties;

            ParticleEvents.RemoveAllEvents();
            ParticleSystemEvents.RemoveAllEvents();

            ParticleEvents.AddEveryTimeEvent(UpdateParticlePositionUsingVelocity);
            ParticleEvents.AddEveryTimeEvent(UpdateParticleRotationUsingRotationalVelocity);
            ParticleEvents.AddEveryTimeEvent(UpdateParticleColorUsingLerp);

            ParticleEvents.AddEveryTimeEvent(UpdateParticleTransparencyToFadeOutUsingLerp, 100);

            ParticleSystemEvents.LifetimeData.EndOfLifeOption = CParticleSystemEvents.EParticleSystemEndOfLifeOptions.Destroy;
            ParticleSystemEvents.LifetimeData.Lifetime        = DPSFHelper.RandomNumberBetween(0.5f, 2.0f);
            ParticleSystemEvents.AddTimedEvent(0.0f, UpdateParticleSystemEmitParticlesAutomaticallyOn);
            ParticleSystemEvents.AddTimedEvent(.2f, UpdateParticleSystemEmitParticlesAutomaticallyOff);

            Emitter.ParticlesPerSecond    = DPSFHelper.RandomNumberBetween(100, 2000);
            Emitter.PositionData.Position = position;
        }
Exemple #8
0
        public Fireworks(TankGame cGame, Vector2 position)
            : base(cGame)
        {
            this.position = new Vector3(position.X, position.Y, 0);

            switch ((int)DPSFHelper.RandomNumberBetween(0, 3))
            {
            case 0:
                startColor = Color.Yellow;
                endColor   = Color.DarkRed;
                break;

            case 1:
                startColor = Color.LightCyan;
                endColor   = Color.Green;
                break;

            case 2:
                startColor = Color.LightBlue;
                endColor   = Color.DarkBlue;
                break;
            }
        }