/// <summary> /// Fonction dont le rôle est de mettre à jour le projectile et de dire au jeu /// si celui-ci peut être retiré ou non /// </summary> /// <param name="deltaT">La vitesse de rafraichissement du jeu</param> /// <param name="gw">Instance représentant le jeu</param> /// <returns>Booléen indiquant si le projectile peut être retiré du jeu(FAUX) ou non (VRAI)</returns> public bool Update(Single deltaT, GW gw) { //Si le projectile sort de la limite du jeu ou devient invisible, alors retirer celui-ci du jeu if (gw.Contains(this) == false || color.A <= 25) { return(false); } //Sinon si le projectile est limité à une durée de vie, alors s'assurer de le retirer au bon moment else if (hasLifeLine && DateTime.Now > tempsVie) { return(false); } //Sinon, on ajoute de nouvelles particules tout en le faisant avancer. else { if (rnd.Next(1, 15 + 1) == 1) { Angle += 7.50f; } else if (rnd.Next(1, 15 + 1) == 1) { Angle -= 7.50f; } Advance(ProjectileSpeed); color.A -= (byte)(reductionAlpha); return(true); } }
/// <summary> /// Méthode dont le rôle est de mettre à jour le projectile et de dire au jeu s'il /// peut supprimer le projectile ou non /// </summary> /// <param name="deltaT">La vitesse de rafraichissement du jeu</param> /// <param name="gw">Instance représentant le jeu</param> /// <returns>Booléen indiquant si le projectile peut être détruit(FALSE) ou non(TRUE)</returns> public bool Update(Single deltaT, GW gw) { //Si le projectile sort de la limite du jeu, alors retirer celui-ci du jeu if (gw.Contains(this) == false) { return(false); } //Sinon, on ajoute de nouvelles particules tout en le faisant avancer. else { gw.AddParticle(new Particle(Position.X, Position.Y, 4, new Color(color.R, color.G, color.B, (byte)rnd.Next(25, 255 + 1)), 5.35f, 0.55f, -rnd.Next(180 - (int)Angle - 5, 180 - (int)Angle + 5 + 1))); Advance(ProjectileSpeed); return(true); } }