Пример #1
0
        private static void Render()
        {
            // Guardo la transformacion
            Matrix old       = Moneda.Transform;
            Device d3dDevice = GuiController.Instance.D3dDevice;

            // Adaptar la altura de la moneda a la marea + offset para que quede flotando
            float  Altura           = Oceano.AplicarCPUShader(Moneda.Position).Y + 50f;
            Matrix MatrizTraslacion = Matrix.Translation(Moneda.Position.X, Altura, Moneda.Position.Z);

            // Acumular rotacion actual, sin pasarnos de una vuelta entera
            rotacionY = (rotacionY + Geometry.DegreeToRadian(1)) % (float)(2 * Math.PI);
            Matrix MatrizRotacion = Matrix.RotationYawPitchRoll(rotacionY, 0, 0);

            // Aplicar transformaciones
            Moneda.Transform = MatrizRotacion * MatrizTraslacion;
            Moneda.BoundingBox.transform(Moneda.Transform);

            // Render verdadero de la moneda
            Moneda.render();

            if (ParametrosDeConfiguracion.RenderBoundingBoxes)
            {
                Moneda.BoundingBox.setRenderColor(Color.Red);
                Moneda.BoundingBox.render();
            }

            // Restaurar la transformacion
            Moneda.Transform = old;

            ContadorMonedas.Render();
        }
Пример #2
0
        /// <summary>
        /// Método para cargar los elementos que hacen al juego
        /// </summary>
        public static void Cargar()
        {
            // Crear loader
            TgcSceneLoader loader = new TgcSceneLoader();

            // Cargar mesh
            TgcScene Scene = loader.loadSceneFromFile(Utiles.MeshesDir("Moneda\\Moneda-TgcScene.xml"));

            Moneda                     = Scene.Meshes[0];
            Moneda.Position            = new Vector3(10, 0, 10);
            Moneda.AutoTransformEnable = false;

            // Como va a estar flotando agrando el bounding box en el eje y
            Vector3 PMax = Moneda.BoundingBox.PMax + new Vector3(0, 100f, 0);
            Vector3 PMin = Moneda.BoundingBox.PMin + new Vector3(0, -100f, 0);

            Moneda.BoundingBox = new TgcBoundingBox(PMax, PMin);

            ContadorMonedas.Cargar();
        }