private void CheckGenerateEmber(float dt) { if ((float)random.NextDouble() <= AVERAGE_NUM_EMBERS_PER_SECOND * dt) { Vector2 position = points[Functions.GetRandomInt(0, points.Length - 1)]; Vector2 velocity = new Vector2(0, -Functions.GetRandomFloat(MIN_EMBER_SPEED, MAX_EMBER_SPEED)); position.Y += EMBER_SPAWN_DEPTH; ParticleFactory.CreateParticle(ParticleTypes.EMBER, position, velocity); } }
public override void Emit() { int numParticles = Functions.GetRandomInt(Attributes.MinParticles, Attributes.MaxParticles); for (int i = 0; i < numParticles; i++) { float speedX = Functions.GetRandomFloat(Attributes.MinParticleSpeedX, Attributes.MaxParticleSpeedX); float speedY = Functions.GetRandomFloat(Attributes.MinParticleSpeedY, Attributes.MaxParticleSpeedY); ParticleFactory.CreateParticle(Attributes.ParticleType, Position, new Vector2(speedX, speedY)); timer.Duration = Functions.GetRandomInt(Attributes.MinDelay, Attributes.MaxDelay); } }