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 }; }