예제 #1
0
파일: AI.cs 프로젝트: HazWard/Tank3D
        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);
        }
예제 #2
0
파일: AI.cs 프로젝트: HazWard/Tank3D
        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);
        }