X-Git-Url: https://git.r.bdr.sh/rbdr/super-polarity/blobdiff_plain/6fceaa7b34f4d6efc497cda51679b37e530a61aa..d7a43ae2d3d4702bd199fa5d8ca84c7c6e78ed36:/SuperPolarityMac/ParticleEngine.cs?ds=sidebyside diff --git a/SuperPolarityMac/ParticleEngine.cs b/SuperPolarityMac/ParticleEngine.cs deleted file mode 100644 index 51188ae..0000000 --- a/SuperPolarityMac/ParticleEngine.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; - -namespace SuperPolarity -{ - class ParticleEngine - { - private Random random; - public Vector2 EmitterLocation { get; set; } - public Color Color; //TODO: Color list for random colors. - public int TTL; - public int TTLRandomFactor; - public int ScatterFactor; - public int ParticleCount; - public float StretchFactor; - private List particles; - private List textures; - - public ParticleEngine(List textures, Vector2 location) - { - EmitterLocation = location; - this.textures = textures; - this.particles = new List(); - random = new Random(); - Color = Color.Red; - TTL = 20; - TTLRandomFactor = 40; - StretchFactor = 1; - } - - private Particle GenerateNewParticle() - { - Texture2D texture = textures[random.Next(textures.Count)]; - Vector2 position = EmitterLocation; - Vector2 velocity = new Vector2( - 1f * (float)(random.NextDouble() * 2 - 1), - 1f * (float)(random.NextDouble() * 2 - 1)); - - float angle = 0; - float angularVelocity = 0.1f * (float)(random.NextDouble() * 2 - 1); - Color color = Color; - float size = (float)random.NextDouble() * StretchFactor; - - position.X += random.Next(-ScatterFactor, ScatterFactor); - position.Y += random.Next(-ScatterFactor, ScatterFactor); - - int ttl = TTL + random.Next(TTLRandomFactor); - - return new Particle(texture, position, velocity, angle, angularVelocity, color, size, ttl); - } - - public void Update() - { - int total = 10; - - for (int i = 0; i < total; i++) - { - particles.Add(GenerateNewParticle()); - } - - for (int particle = 0; particle < particles.Count; particle++) - { - particles[particle].Update(); - if (particles[particle].TTL <= 0) - { - particles.RemoveAt(particle); - particle--; - } - } - } - - public void Draw(SpriteBatch spriteBatch) - { - //spriteBatch.Begin(); - for (int index = 0; index < particles.Count; index++) - { - particles[index].Draw(spriteBatch); - } - //spriteBatch.End(); - } - } -}