コード例 #1
0
        void NettoyerListePositions()
        {
            int cpt           = 0;
            int grandeurListe = ListePositionsRandom.Count;

            for (int i = 0; i < grandeurListe - 1; i++)
            {
                ListePositionsRandom.RemoveAt(cpt);
            }
        }
コード例 #2
0
        void DéterminerDéplacementModèle()
        {
            const int DÉPLACEMENTS_POSSIBLES = 8;

            AnciennePositionAléatoire = Position;

            ListePositionsRandom.Add(AnciennePositionAléatoire);

            Random GérérateurAléatoire = new Random();
            float  posX;
            float  posZ;
            float  posY;

            Vector2[] PositionsPossibles = new Vector2[DÉPLACEMENTS_POSSIBLES] {
                new Vector2(Position.X, Position.Z - 3), new Vector2(Position.X, Position.Z + 3), new Vector2(Position.X + 3, Position.Z), new Vector2(Position.X - 3, Position.Z), new Vector2(Position.X + 3, Position.Z - 3), new Vector2(Position.X + 3, Position.Z + 3), new Vector2(Position.X - 3, Position.Z - 3), new Vector2(Position.X - 3, Position.Z + 3)
            };
            Vector2 vecteurPosition;

            do
            {
                int valeurAléatoire = GérérateurAléatoire.Next(0, DÉPLACEMENTS_POSSIBLES);


                posX = MathHelper.Max(MathHelper.Min(PositionsPossibles[valeurAléatoire].X, TerrainDeJeu.NbColonnes / 2), -TerrainDeJeu.NbColonnes / 2);
                posZ = MathHelper.Max(MathHelper.Min(PositionsPossibles[valeurAléatoire].Y, TerrainDeJeu.NbRangées / 2), -TerrainDeJeu.NbRangées / 2);

                vecteurPosition = new Vector2(posX + TerrainDeJeu.NbColonnes / 2, posZ + TerrainDeJeu.NbRangées / 2);


                posY = (TerrainDeJeu.GetPointSpatial((int)Math.Round(vecteurPosition.X, 0), TerrainDeJeu.NbRangées - (int)Math.Round(vecteurPosition.Y, 0)) + Vector3.Zero).Y;
            }while (posX == ListePositionsRandom.ElementAt(ListePositionsRandom.Count - 2).X&& posZ == ListePositionsRandom.ElementAt(ListePositionsRandom.Count - 2).Z);

            PosTmpPok = new Vector3(posX, posY, posZ);

            /*
             *
             * const int DÉPLACEMENTS_POSSIBLES = 8;
             *
             * AnciennePositionAléatoire = Position;
             *
             * ListePositionsRandom.Add(AnciennePositionAléatoire);
             *
             * Random GérérateurAléatoire = new Random();
             * float posX;
             * float posZ;
             * float posY;
             *
             * Vector2[] PositionsPossibles = new Vector2[DÉPLACEMENTS_POSSIBLES] { new Vector2(Position.X, Position.Z - 3), new Vector2(Position.X, Position.Z + 3), new Vector2(Position.X + 3, Position.Z), new Vector2(Position.X - 3, Position.Z), new Vector2(Position.X + 3, Position.Z - 3), new Vector2(Position.X + 3, Position.Z + 3), new Vector2(Position.X - 3, Position.Z - 3), new Vector2(Position.X - 3, Position.Z + 3) };
             * int valeurAléatoire = GérérateurAléatoire.Next(0, DÉPLACEMENTS_POSSIBLES);
             * Vector2 vecteurPosition = new Vector2(Position.X + TerrainDeJeu.NbColonnes / 2, Position.Z + TerrainDeJeu.NbRangées / 2);
             *
             * posY = (TerrainDeJeu.GetPointSpatial((int)Math.Round(vecteurPosition.X, 0), TerrainDeJeu.NbRangées - (int)Math.Round(vecteurPosition.Y, 0)) + Vector3.Zero).Y;
             *
             * Vector2 direction = new Vector2(Position.X,Position.Z) - new Vector2(PositionsPossibles[valeurAléatoire].X, PositionsPossibles[valeurAléatoire].Y);
             *
             * //do
             * //{
             * //    int valeurAléatoire = GérérateurAléatoire.Next(0, DÉPLACEMENTS_POSSIBLES);
             *
             *
             * //    posX = MathHelper.Max(MathHelper.Min(PositionsPossibles[valeurAléatoire].X, TerrainDeJeu.NbColonnes / 2), -TerrainDeJeu.NbColonnes / 2);
             * //    posZ = MathHelper.Max(MathHelper.Min(PositionsPossibles[valeurAléatoire].Y, TerrainDeJeu.NbRangées / 2), -TerrainDeJeu.NbRangées / 2);
             *
             * //    vecteurPosition = new Vector2(posX + TerrainDeJeu.NbColonnes / 2, posZ + TerrainDeJeu.NbRangées / 2);
             *
             *
             * //    posY = (TerrainDeJeu.GetPointSpatial((int)Math.Round(vecteurPosition.X, 0), TerrainDeJeu.NbRangées - (int)Math.Round(vecteurPosition.Y, 0)) + Vector3.Zero).Y;
             *
             * //}
             * //while (posX == ListePositionsRandom.ElementAt(ListePositionsRandom.Count - 2).X && posZ == ListePositionsRandom.ElementAt(ListePositionsRandom.Count - 2).Z);
             *
             * //Vector3 direc = Position + new Vector3(direction.X, 0, direction.Y);
             *
             * PosTmpPok = new Vector3(direc.X, posY, direc.Z);
             *
             */
        }