public Particle(Texture2D texture, DecimalRectangle position, Vector2 speed, float angle, float angularSpeed, Color color, int lifeTime)
 {
     this.texture = texture;
     this.position = position;
     this.speed = speed;
     this.angle = angle;
     this.angularSpeed = angularSpeed;
     this.color = color;
     this.color.A = 0;
     this.lifeTime = lifeTime;
     this.totalLifeTime = lifeTime;
 }
        /// <summary>
        /// Constructeur
        /// </summary>
        /// <param name="_windowSize">Taille actuelle de la fenêtre</param>
        /// <param name="emitterLocation">Zone d'apparition des nouvelles particules</param>
        /// <param name="assetNames">Liste des noms des textures à utiliser</param>
        /// <param name="nbNewParticle">Nombre de nouvelle particules à générer à chaque Update</param>
        /// <param name="vitesseMin">Vitesse minimal d'une particule</param>
        /// <param name="vitesseMax">Vitesse maximale d'une particule</param>
        /// <param name="directionAngle">Direction de propagation des particules (en degré)</param>
        /// <param name="directionAngleVariation">Variation (en degré) autour de l'axe de propagation</param>
        /// <param name="initialAngleMin">Angle initiale minimal de la particule</param>
        /// <param name="initialAngleMax">Angle initiale maximal de la particule</param>
        /// <param name="SizeRange">X : minWidth - Width : maxWidth - Y : minHeight - Height : maxHeight</param>
        /// <param name="vitesseRotationMin">Vitesse de rotation minimale (en degré/Update())</param>
        /// <param name="vitesseRotationMax">Vitesse de rotation maximale (en degré/Update())</param>
        /// <param name="lifeTimeMin">Temps de vie minimal de la particule</param>
        /// <param name="lifeTimeMax">Temps de vie maximal de la particule</param>
        public ParticleEngine(Rectangle _windowSize,
                              DecimalRectangle emitterLocation,
                              Vector3 SizeRange,
                              List<string> assetNames = null,
                              int nbNewParticle = 10,
                              float vitesseMin = 0f, float vitesseMax = 2f,
                              float directionAngle = 0f, float directionAngleVariation = 180f,
                              float initialAngleMin = 0f, float initialAngleMax = 0f,
                              float vitesseRotationMin = -2, float vitesseRotationMax = 2,
                              float lifeTimeMin = 20f, float lifeTimeMax = 100f)
        {
            windowSize = _windowSize;
            random = new Random();
            this.emitterLocation = emitterLocation;
            this.assetNames = assetNames;
            particles = new List<Particle>();
            textures = new List<Texture2D>();
            this.nbNewParticle = nbNewParticle;

            this.speedRange = new Vector2(vitesseMin, vitesseMax);
            this.directionRange = new Vector2(directionAngle, directionAngleVariation);
            this.angleRange = new Vector2(initialAngleMin, initialAngleMax);
            this.angularSpeedRange = new Vector2(vitesseRotationMin, vitesseRotationMax);
            this.lifeTimeRange = new Vector2(lifeTimeMin, lifeTimeMax);
            this.sizeRange = SizeRange;
            this.colorRange = new byte[6] { 255, 255, 255, 255, 255, 255 };
        }