protected override void Init()
        {
            var loader = new TgcSceneLoader();

            scene = loader.loadSceneFromFile(GameModel.Media + "\\escenarios\\plataformas\\plataformas-TgcScene.xml");

            var scene2 = loader.loadSceneFromFile(GameModel.Media + "\\objetos\\plataforma\\plataforma-TgcScene.xml");

            plataforma1Mesh = scene2.Meshes[0];
            plataforma2Mesh = scene2.Meshes[0];

            plataforma1Mesh.AutoTransform = false;
            plataforma2Mesh.AutoTransform = false;

            plataforma1 = new Plataforma(new TGCVector3(0, 0, 0), plataforma1Mesh, contexto);
            plataforma2 = new Plataforma(new TGCVector3(0, 0, 0), plataforma1Mesh, contexto);

            this.planos = loader.loadSceneFromFile(GameModel.Media + "planos\\plataforma-TgcScene.xml");

            planoIzq = this.planos.getMeshByName("planoIzq");
            planoIzq.AutoTransform = false;

            planoDer = this.planos.getMeshByName("planoDer");
            planoDer.AutoTransform = false;

            planoPiso = this.planos.getMeshByName("planoPiso");
            planoPiso.AutoTransform = false;

            planoFront = this.planos.getMeshByName("planoFin");
            planoFront.AutoTransform = false;

            planoBack = this.planos.getMeshByName("planoInicio");
            planoBack.AutoTransform = false;
        }
Example #2
0
 private Luz CrearLuz(string pathRecursos, TgcBox cancha, int signoX, int signoZ, float rotateY)
 {
     TgcMesh luzMesh = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFilePoste).Meshes[0];
     //TODO cambiar por matrices
     luzMesh.AutoTransformEnable = true;
     luzMesh.rotateY(rotateY);
     luzMesh.Scale = new Vector3(3, 4, 3);
     luzMesh.Position = new Vector3(signoX * (cancha.Size.X / 2 + 50), cancha.Position.Y + luzMesh.BoundingBox.PMax.Y, signoZ * (cancha.Size.Z / 2 + 100));
     Luz luz = new Luz(luzMesh, Color.White, luzMesh.BoundingBox.PMax);
     return luz;
 }
Example #3
0
 /// <summary> 
 /// Crea una tribuna desde un mesh, pero por como esta creada se necesita acomodarla en la cancha y escalarla 
 /// </summary>
 /// <param name="pathMesh"> ruta donde esta el mesh de la tribuna </param>
 /// <param name="position"> donde la tengo que ubicar a la tribuna</param>
 /// <param name="rotateY"> como la tengo que rotar para que quede en la horientacion correcta </param>
 /// <param name="scale"> factor de escalado para que quede armonica a la cancha </param>
 /// <returns></returns>
 private TgcMesh CrearTribuna(string pathMesh, float rotateY, Vector3 scale)
 {
     TgcMesh tribuna = new TgcSceneLoader().loadSceneFromFile(pathMesh).Meshes[0];
     tribuna.rotateY(rotateY);
     tribuna.Scale = scale;
     return tribuna;
 }
Example #4
0
        /// <summary>
        /// Creo un arco
        /// </summary>
        /// <param name="posicion">Donde va a estar ubicado el Arco</param>
        /// <param name="pathRecursos">De donde sacar el mesh</param>
        /// <returns> Un arco</returns>
        private Arco CrearArco(string pathRecursos, Cancha cancha, int direccion)
        {
            Vector3 posicion = new Vector3(direccion * (cancha.Position.X + cancha.Size.X / 2 - 100), cancha.Position.Y, cancha.Position.Z);

            List<Palo> palos = new List<Palo>();
            TgcMesh palo1 = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFileGoal).Meshes[0];
            //TODO cambiar por matrices
            palo1.AutoTransformEnable = true;
            palo1.Position = posicion;
            palo1.Scale = new Vector3(0.8f, 0.8f, 0.8f);

            TgcMesh palo2 = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFileGoal).Meshes[1];
            //TODO cambiar por matrices
            palo2.AutoTransformEnable = true;
            palo2.Position = posicion;
            palo2.Scale = new Vector3(0.8f, 0.8f, 0.8f);

            TgcMesh palo3 = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFileGoal).Meshes[2];
            //TODO cambiar por matrices
            palo3.AutoTransformEnable = true;
            palo3.Position = posicion;
            palo3.Scale = new Vector3(0.8f, 0.8f, 0.8f);

            palos.Add(new Palo(palo1));
            palos.Add(new Palo(palo2));
            palos.Add(new Palo(palo3));

            Vector3 posicionRed = new Vector3(posicion.X, posicion.Y + palo3.BoundingBox.PMin.Y / 2, posicion.Z);
            Vector3 tamanoRed = new Vector3(0, palo3.BoundingBox.PMin.Y, palo3.BoundingBox.PMax.Z * 2 - 14);

            TgcMesh red = new TgcSceneLoader().loadSceneFromFile(pathRecursos + "Arco\\Red-TgcScene.xml").Meshes[0];
            //TODO cambiar por matrices
            red.AutoTransformEnable = true;
            red.Position = posicionRed + new Vector3(direccion * 65, 0, 0);
            //TODO esto significa que los arcos no son correctos... porque no escalo igual
            red.Scale = new Vector3(3f, 3f, 2f);
            red.AlphaBlendEnable = true;

            //Roto uno de los 2 ya que uso el mismo mesh
            if (direccion == -1)
            {
                red.rotateY(FastMath.PI);
            }

            return new Arco(palos, new Red(TgcBox.fromSize(posicionRed, tamanoRed), red));
        }