//ritar ut texturen med farten och en färg!
 public void Draw(SpriteBatch spriteBatch, Camera camera, Texture2D texture)
 {
     //spriteBatch.Draw(texture, camera.scaleParticles(position.X, position.Y), Color.White);
     spriteBatch.Begin();
     spriteBatch.Draw(texture, camera.convertToVisualCoords(new Vector2(position.X, position.Y)), null, Color.White, 0f, Vector2.Zero, 0.1f, SpriteEffects.None, 0f);//denna skalar om mina partiklar!
     spriteBatch.End();
 }
 public void Draw(SpriteBatch spritebatch, Camera camera, Texture2D texture)
 {
     int i;
     for (i = 0; i < maxParticles; i++)
     {
         particles[i].Draw(spritebatch, camera, texture);
     }
 }
 /// <summary>
 /// LoadContent will be called once per game and is the place to load
 /// all of your content.
 /// </summary>
 protected override void LoadContent()
 {
     // Create a new SpriteBatch, which can be used to draw textures.
     spriteBatch = new SpriteBatch(GraphicsDevice);
     camera = new Camera(graphics.GraphicsDevice.Viewport);
     Texture2D smokee = Content.Load<Texture2D>("particlesmokee");
     Texture2D spark = Content.Load<Texture2D>("spark");
     Texture2D bangExplosion = Content.Load<Texture2D>("explosion");
     explosionManager = new Explosion(spriteBatch, spark, camera, smokee, bangExplosion);
     // TODO: use this.Content to load your game content here
 }
 public SmokeSystem(Texture2D Texture, Vector2 startPosition, Camera Camera)
 {
     maxParticleCount = 200;//hur många partiklar ska jag ha?
     smoke = new Smoke[maxParticleCount];//lägger in alla i en array med partiklar
     elapsedTime = 0;//den gångna tiden
     offset = 0;
     maxLife = 7000;
     texture = Texture;
     r = new Random();
     startPos = new Vector2 (startPosition.X, startPosition.Y);
     camera = Camera;
 }
        public ExplosionManager(SpriteBatch spritebatch, Texture2D Texture, Camera Camera, Vector2 SystemStartPosition)
        {
            timeElapsed = 0; //denna ska vara 0 när programmet startas

            camera = Camera;//så jag kan använda kameran i klassen!
            spriteBatch = spritebatch;
            texture = Texture;

            systemStartPosition = SystemStartPosition;
            position = new Vector2(SystemStartPosition.X, SystemStartPosition.Y);//sätter start positionen

            Width = texture.Width / posFramesX; //delar explosionens bredd med positions framesen!
            Height = texture.Height / posFramesY;
        }
        // denna kommer reseta allt
        private void resetParticle(Smoke particle, Camera camera, Vector2 StartPosition)
        {
            float speed = 0.3f;//farten på partiklarna
            Vector2 velocity = new Vector2((float)r.NextDouble() * 2f - 1f, (float)r.NextDouble() * 2f - 1f);
            startPosition = StartPosition;
            velocity.Normalize();
            velocity = velocity * speed;

            float rotation = (float)r.NextDouble() * 2f * (float)Math.PI;//denna kommer rotera partiklarna lite
            float allTheRadians = 2f * (float)Math.PI;// gör så att partiklarna roterar runt mitten av spriten
            float rotationSpeed = ((float)r.NextDouble() * allTheRadians - allTheRadians / 2f) / 300f;

            particle.Reset(camera.convertToVisualCoords(new Vector2(startPos.X, startPos.Y)), velocity, rotation, rotationSpeed, (float)r.NextDouble() * 20 + 10);// kommer ge allt sina värden när man ska skapa om dom!//startPos*500
        }
        public Explosion(SpriteBatch spritebatch, Texture2D Particle, Camera Camera, Texture2D Smoke, Texture2D BangExplosion)
        {
            timeElapsed = 0; //denna ska vara 0 när programmet startas

            camera = Camera;//så jag kan använda kameran i klassen!
            spriteBatch = spritebatch;
            particle = Particle;
            bangExplosion = BangExplosion;
            smoke = Smoke;

            Width = particle.Width; // posFramesX; //delar explosionens bredd med positions framesen!
            Height = particle.Height; // posFramesY;

            particleSystem = new ParticleSystem(startposition);
            smokeSystem = new SmokeSystem(smoke, startposition, camera);//får inte denna att fungera
            explosionManager = new ExplosionManager(spriteBatch, BangExplosion, camera, startposition);
        }