public AI(Game jeu, string nomModèle, float échelleInitiale, Vector3 rotationInitiale, Vector3 positionInitiale, float intervalleMAJ, Joueur cible, int numéroAI, GestionnaireEnnemis gestionEnnemis) : base(jeu, nomModèle, échelleInitiale, rotationInitiale, positionInitiale, intervalleMAJ) { Cible = cible; CompteurTir = 0; CompteurMouvement = 0; Orientation = 0; NuméroAI = numéroAI; Compteur = 0; Jeu = jeu; VieAI = new BarreDeVie(jeu, échelleInitiale, rotationInitiale, new Vector3(positionInitiale.X, positionInitiale.Y + 15, positionInitiale.Z), new Vector2(100, 17), new Vector2(1, 1), "BarreDeVieRectangleComplète", IntervalleMAJ); GestionEnnemis = gestionEnnemis; Game.Components.Add(VieAI); }
public override void Update(GameTime gameTime) { TempsÉcouléDepuisMAJ += (float)gameTime.ElapsedGameTime.TotalSeconds; Distance = new Vector2(Position.X - Cible.Coordonnées.X, Position.Z - Cible.Coordonnées.Y).Length(); if (TempsÉcouléDepuisMAJ >= IntervalleMAJ) { if (!EstEnCollision) { if (Distance <= EST_PROCHE) { if (CompteurTir % DÉLAI_TIR == 0) { GestionProjectile(); } GestionMouvements(false, "non"); } else { GestionMouvements(true, "non"); } } else { GestionMouvements(true, "oui"); } if (AÉtéTiré) { PourcentageVie -= 0.25f; if (PourcentageVie == 0.75f) { Game.Components.Remove(VieAI); VieAI = new BarreDeVie(Jeu, Échelle, Rotation, new Vector3(Position.X, Position.Y + 15, Position.Z), new Vector2(100, 17), new Vector2(1, 1), "BarreDeVieRectangleTroisQuart", IntervalleMAJ); Game.Components.Add(VieAI); } if (PourcentageVie == 0.50f) { Game.Components.Remove(VieAI); VieAI = new BarreDeVie(Jeu, Échelle, Rotation, new Vector3(Position.X, Position.Y + 15, Position.Z), new Vector2(100, 17), new Vector2(1, 1), "BarreDeVieRectangleDemie", IntervalleMAJ); Game.Components.Add(VieAI); } if (PourcentageVie == 0.25f) { Game.Components.Remove(VieAI); VieAI = new BarreDeVie(Jeu, Échelle, Rotation, new Vector3(Position.X, Position.Y + 15, Position.Z), new Vector2(100, 17), new Vector2(1, 1), "BarreDeVieRectangleQuart", IntervalleMAJ); Game.Components.Add(VieAI); } if (PourcentageVie <= 0) { EstDétruit = true; } AÉtéTiré = false; } if (EstDétruit) { Cible.Score++; GestionEnnemis.DoitCréer = true; Game.Components.Add(new TankDétruit(Game, "Veteran Tiger Destroyed", 0.05f, Rotation, Position)); Game.Components.Remove(VieAI); Game.Components.Remove(this); } ++CompteurTir; Compteur++; TempsÉcouléDepuisMAJ = 0; CalculBarreDeVie(); } base.Update(gameTime); }