예제 #1
0
        protected override void InitialiserSommets()
        {
            int NoSommets = 0;

            for (int i = 0; i < BordureIntérieure.Count; ++i)
            {
                Sommets[NoSommets++] = new VertexPositionColor(Terrain.GetPointSpatial((int)Math.Round(BordureExtérieure[i].X, 0), Terrain.NbRangées - (int)Math.Round(BordureExtérieure[i].Y, 0)), Color.Black);
                Sommets[NoSommets++] = new VertexPositionColor(Terrain.GetPointSpatial((int)Math.Round(BordureIntérieure[i].X, 0), Terrain.NbRangées - (int)Math.Round(BordureIntérieure[i].Y, 0)), Color.Black);
            }
        }
        void CalculerPosition()
        {
            Vector3 vecteurRayon    = new Vector3(0, Rayon, 0);
            Vector2 vecteurPosition = new Vector2(Position.X + Terrain.NbColonnes / 2, Position.Z + Terrain.NbRangées / 2);

            Position = new Vector3(Position.X, (Terrain.GetPointSpatial((int)Math.Round(vecteurPosition.X, 0), Terrain.NbRangées - (int)Math.Round(vecteurPosition.Y, 0)) + vecteurRayon).Y, Position.Z);


            SphèreDeCollision = new BoundingSphere(Position, SphèreDeCollision.Radius);
        }
예제 #3
0
        protected void BougerTrainer(float déplacementHorizontal, float déplacementProfondeur)
        {
            Direction = ((CaméraJeu) as CaméraSubjective).Direction;
            Latéral   = Vector3.Cross(Direction, OrientationVertical);

            Position += Direction * déplacementProfondeur;
            Position += Latéral * déplacementHorizontal;
            Limites();

            Vector2 vecteurPosition = new Vector2(Position.X + Terrain.NbColonnes / 2, Position.Z + Terrain.NbRangées / 2);
            float   posY            = (Terrain.GetPointSpatial((int)Math.Round(vecteurPosition.X, 0), Terrain.NbRangées - (int)Math.Round(vecteurPosition.Y, 0)) + Vector3.Zero).Y;

            Position = new Vector3(Position.X, posY, Position.Z);

            SphèreDeCollision = new BoundingSphere(Position, SphèreDeCollision.Radius);
        }
        public override void Initialize()
        {
            base.Initialize();
            AngleRotation = 0;
            DonnéesPiste  = Game.Services.GetService(typeof(DataPiste)) as DataPiste;
            Terrain       = Game.Services.GetService(typeof(TerrainAvecBase)) as TerrainAvecBase;

            List <Vector2> pointsPatrouille = DonnéesPiste.GetPointsDePatrouille();

            ListeCible = new List <Vector3>(pointsPatrouille.Count - 1);

            foreach (Vector2 vecteur in pointsPatrouille)
            {
                ListeCible.Add(Terrain.GetPointSpatial((int)Math.Round(vecteur.X, 0), Terrain.NbRangées - (int)Math.Round(vecteur.Y, 0)));
            }

            AnciennePositionCaméra = CaméraJeu.Position;
        }