Esempio n. 1
0
        private void AddExplosionParticle(Vector2 explosionPos, float size, float maxAge, GameTime gameTime)
        {
            ParticleData particle = new ParticleData();

            particle.OriginalPosition = explosionPos;
            particle.Position         = particle.OriginalPosition;

            particle.BirthTime = (float)gameTime.TotalGameTime.TotalMilliseconds;
            particle.MaxAge    = maxAge;
            particle.Scaling   = .25f;
            particle.ModColor  = Color.Red;


            Random rand = new Random(42);

            //Gen a random direction
            float   particleDistance = (float)rand.NextDouble() * size;
            Vector2 displacement     = new Vector2(particleDistance, 0);
            float   angle            = (float)rand.Next(360).ToRadians();

            displacement = Vector2.Transform(displacement, Matrix.CreateRotationZ(angle));

            particle.Direction    = displacement;
            particle.Accelaration = 3.0f * particle.Direction;

            particleList.Add(particle);
        }
Esempio n. 2
0
 private void DrawExplosion()
 {
     for (int i = 0; i < particleList.Count; i++)
     {
         ParticleData particle = particleList[i];
         spriteBatch.Draw(explosionTexture, particle.Position, null, particle.ModColor, i, new Vector2(256, 256), particle.Scaling, SpriteEffects.None, 1);
     }
 }