Example #1
0
        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);
            }
        }