private static Particle GenerateNewParticle(ParticlesStyle style) { Texture2D texture = textures[RandomNumbersHelper.ReturnRandomNumber(textures.Count)]; Vector2 position = EmitterLocation; Vector2 velocity = new Vector2( 1f * (float)(RandomNumbersHelper.ReturnRandomDouble() * 2 - 1), 1f * (float)(RandomNumbersHelper.ReturnRandomDouble() * 2 - 1)); float angle = 0; float angularVelocity = 0.1f * (float)(RandomNumbersHelper.ReturnRandomDouble() * 2 - 1); Color color; float size = (float)RandomNumbersHelper.ReturnRandomDouble(); int ttl = 5 + RandomNumbersHelper.ReturnRandomNumber(20); switch (style) { case ParticlesStyle.ATTACK: color = Color.DarkRed; position += new Vector2(Constants.TILESIZE / 2, Constants.TILESIZE / 2); size = size / 2; break; default: color = new Color( (float)RandomNumbersHelper.ReturnRandomDouble(), (float)RandomNumbersHelper.ReturnRandomDouble(), (float)RandomNumbersHelper.ReturnRandomDouble()); break; } return(new Particle(texture, position, velocity, angle, angularVelocity, color, size, ttl)); }
public static void NewParticleStreamAt(int ammount, Vector2 position, ParticlesStyle style) { SetPosition(position); for (int i = 0; i < ammount; i++) { particles.Add(GenerateNewParticle(style)); } }