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; }
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(); }
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; }
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; }
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; }
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); }
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; }
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; } }