/// <summary> /// Método que se llama una sola vez, al principio cuando se ejecuta el ejemplo. /// Escribir aquí todo el código de inicialización: cargar modelos, texturas, modifiers, uservars, etc. /// Borrar todo lo que no haga falta /// </summary> /// public override void init() { estado = states.inicio; //Creo Menu Inicio menuInicio = new MenuInicio(); menuCreditos = new MenuCreditos(); menuAyuda = new MenuAyuda(); game = new Game(); //Modifier para ver BoundingBox GuiController.Instance.Modifiers.addBoolean("Collisions", "Collisions", true); GuiController.Instance.Modifiers.addBoolean("HabilitarGravedad", "Habilitar Gravedad", true); //Modifiers para desplazamiento del personaje GuiController.Instance.Modifiers.addFloat("VelocidadMax", 0f, 100f, 20f); GuiController.Instance.Modifiers.addFloat("Aceleracion", 0f, 10f, 4f); GuiController.Instance.Modifiers.addFloat("Rozamiento", 0.1f, 2f, 0.1f); GuiController.Instance.Modifiers.addFloat("VelocidadRotacion", 1f, 500f, 300f); GuiController.Instance.Modifiers.addVertex3f("Gravedad", new Vector3(-50, -500, -50), new Vector3(50, 500, 50), new Vector3(0, -20f, 0)); GuiController.Instance.Modifiers.addFloat("SlideFactor", 0f, 10f, 1f); GuiController.Instance.Modifiers.addFloat("Pendiente", 0f, 1f, 0.72f); GuiController.Instance.UserVars.addVar("elapsedTime"); GuiController.Instance.UserVars.addVar("GravedadActual"); GuiController.Instance.UserVars.addVar("Movement"); GuiController.Instance.UserVars.addVar("Rotation"); GuiController.Instance.UserVars.addVar("AnguloZ"); GuiController.Instance.UserVars.addVar("AnguloY"); GuiController.Instance.UserVars.addVar("moveForward"); GuiController.Instance.UserVars.addVar("velIni"); GuiController.Instance.UserVars.addVar("aceleracion"); GuiController.Instance.UserVars.addVar("tiempoAcel"); GuiController.Instance.UserVars.addVar("tiempoDesce"); float K = 300; GuiController.Instance.Modifiers.addVertex3f("LightLookFrom", new Vector3(-K, -K, -K), new Vector3(K, K, K), new Vector3(80, 120, 0)); GuiController.Instance.Modifiers.addVertex3f("LightLookAt", new Vector3(-K, -K, -K), new Vector3(K, K, K), new Vector3(0, 0, 0)); }
/// <summary> /// Método que se llama cada vez que hay que refrescar la pantalla. /// Escribir aquí todo el código referido al renderizado. /// Borrar todo lo que no haga falta /// </summary> /// <param name="elapsedTime">Tiempo en segundos transcurridos desde el último frame</param> public override void render(float elapsedTime) { Microsoft.DirectX.Direct3D.Device d3dDevice = GuiController.Instance.D3dDevice; TgcD3dInput d3dInput = GuiController.Instance.D3dInput; if (d3dInput.keyPressed(Key.Q)) { estado = EjemploAlumno.states.inicio; game.close(); game = new Game(); } //pantalla De Inicio switch (estado) { case states.inicio: menuInicio.activar(ref estado); break; case states.creditos: menuCreditos.activar(ref estado); break; case states.ayuda: menuAyuda.activar(ref estado); break; case states.game: estaCorriendoGame = true; game.activar(ref estado, elapsedTime); break; } }