void NettoyerListePositions() { int cpt = 0; int grandeurListe = ListePositionsRandom.Count; for (int i = 0; i < grandeurListe - 1; i++) { ListePositionsRandom.RemoveAt(cpt); } }
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); * */ }