public MenuInicio() { //Crear Sprite sprite = new TgcSprite(); sprite.Texture = TgcTexture.createTexture(GuiController.Instance.AlumnoEjemplosMediaDir + "menu\\inicio.jpg"); //Ubicarlo centrado en la pantalla Size screenSize = GuiController.Instance.Panel3d.Size; Size textureSize = sprite.Texture.Size; sprite.Position = new Vector2(0, 0); sprite.Scaling = new Vector2((float)screenSize.Width / textureSize.Width, (float)screenSize.Height / textureSize.Height + 0.01f); //Crear Text menuLineas = new TgcText2d[] { new TgcText2d(), new TgcText2d(), new TgcText2d(), new TgcText2d() }; //Cargar Textos menuLineas[0].Text = "(I) Iniciar"; menuLineas[0].Position = new Point(inicialX, inicialY - distEntreLineas); menuLineas[0].changeFont(new System.Drawing.Font("TimesNewRoman", 23, FontStyle.Bold | FontStyle.Bold)); menuLineas[1].Text = "(C) Creditos"; menuLineas[1].Position = new Point(inicialX, inicialY); menuLineas[1].changeFont(new System.Drawing.Font("TimesNewRoman", 23, FontStyle.Bold | FontStyle.Bold)); menuLineas[2].Text = "(A) Ayuda"; menuLineas[2].Position = new Point(inicialX, inicialY + distEntreLineas); menuLineas[2].changeFont(new System.Drawing.Font("TimesNewRoman", 23, FontStyle.Bold | FontStyle.Bold)); //Inicializa el d3dInput input = GuiController.Instance.D3dInput; }
public PantallaInicio() { //Alto y ancho total de la pantalla float screenHeigth = Globales.getInstance().getAltoPantalla(); float screenWidth = Globales.getInstance().getAnchoPantalla(); //Coeficientes para la posicion relativa de las fotos de Mario y Luigi float xrelatMario = 0.1112f; float yrelatAmbos = 0.38f; float xrelatLuigi = 0.5631f; //Coeficientes absolutos para el escalado de Mario y Luigi float xrelat = 0.266f; float yrelat = 0.5f; //Coeficientes que regulan el tamaño especifico de cada imagen. float relatMarioX = xrelat * screenWidth / 480; //Los denominadores son los tamaños de alto y ancho de la imagen. float relatMarioY = yrelat * screenHeigth / 480; float relatRecux = 0.2904f * screenWidth / 500; float relatRecuy = 0.5510f * screenHeigth / 500; float relatMKx = 0.18f * screenWidth / 500; float relatMKy = 0.25f * screenHeigth / 500; float relatInicx = 0.2f * screenWidth / 500; float relatInicy = 0.5f * screenHeigth / 500; //Se cargan las imágenes que necesita la pantalla, el coso que carga los meshes y el que uso para captar el teclado. mario = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\personajes\\mario.jpg"); mario.setPosicion(new Vector2(xrelatMario * screenWidth, yrelatAmbos * screenHeigth)); mario.setEscala(new Vector2(relatMarioX, relatMarioY)); luigi = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\personajes\\luigi.jpg"); luigi.setPosicion(new Vector2(xrelatLuigi * screenWidth, yrelatAmbos * screenHeigth));//500,180 luigi.setEscala(new Vector2(relatMarioX, relatMarioY)); recuadro = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\otros\\recuadro.png"); recuadro.setPosicion(0.95f*mario.getPosition()); recuadro.setEscala(new Vector2(relatRecux,relatRecuy)); //MARIO KART marioKart = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\frases\\D.png"); marioKart.setPosicion(new Vector2(0.1345f*screenWidth, 0.05f*screenWidth)); marioKart.setEscala(new Vector2(relatMKx,relatMKy)); //"PRESIONE LA J PARA EMPEZAR A JUGAR" iniciar = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\frases\\P.png"); iniciar.setPosicion(new Vector2(0.9f*marioKart.getPosition().X, 1.045f*marioKart.getPosition().Y )); iniciar.setEscala(new Vector2(relatInicx, relatInicy)); //MENSAJE CONSOLA GuiController.Instance.Logger.log(" [WASD] Controles Vehículo " + Environment.NewLine + " [M] Música On/Off" + Environment.NewLine + " [R] Reset posición" + Environment.NewLine + " [B] Debug Mode (muestra OBBs y otros datos útiles)" + Environment.NewLine + " [I] Degreelessness Mode (modo Dios)" + Environment.NewLine + " [Q] Volver al menú principal"); entrada = GuiController.Instance.D3dInput; }
public PantallaGameOver() { gameOver = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\GO.png"); gameOver.setPosicion(new Vector2(150, 150)); gameOver.setEscala(new Vector2(0.3f, 0.3f)); this.entrada = GuiController.Instance.D3dInput; /* mensaje = new TgcText2d(); mensaje.Text = "GAME OVER. Presione Q para volver a empezar"; mensaje.Color = Color.DarkRed; mensaje.Align = TgcText2d.TextAlign.CENTER; mensaje.Position = new Point(200, 200); mensaje.Size = new Size(600, 50); mensaje.changeFont(new System.Drawing.Font("TimesNewRoman", 25, FontStyle.Bold));*/ }
public PantallaFinalizacion(int ganadorOPerdedor) { this.entrada = GuiController.Instance.D3dInput; float screenHeigth = Globales.getInstance().getAltoPantalla(); float screenWidth = Globales.getInstance().getAnchoPantalla(); float cx = 0.5f * screenWidth / 1500; float cy = 0.4f* screenHeigth / 500; float cvx = 0.65f * screenWidth / 1500; float cvy = 0.5f * screenHeigth / 500; if (ganadorOPerdedor == 0) { gameOver = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\frases\\GO.png"); gameOver.setPosicion(new Vector2(0.15f * screenWidth, 0.2f* screenHeigth)); gameOver.setEscala(new Vector2(cx, cy)); bandera=false; /*mensaje.Text = "GAME OVER. Presione Q para volver a intentar"; mensaje.Color = Color.DarkRed;*/ } else { ganaste = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\frases\\ganaste.png"); //ganaste.setEscala(new Vector2(cx, cy)); ganaste.setEscalarMaximo(); ganaste.setCentrarAncho(0.2f * screenHeigth); bandera=true; /*mensaje.Text = "Ganaste! Presione Q para volver a jugar"; mensaje.Color = Color.Green;*/ } volverAEmpezar = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\frases\\Q.png"); volverAEmpezar.setPosicion(new Vector2(0.1f * screenWidth , 0.35f * screenHeigth)); volverAEmpezar.setEscala(new Vector2(cvx, cvy)); }
public MenuCreditos() { //Crear Sprite sprite = new TgcSprite(); sprite.Texture = TgcTexture.createTexture(GuiController.Instance.AlumnoEjemplosMediaDir + "menu\\creditos.jpg"); //Ubicarlo centrado en la pantalla Size screenSize = GuiController.Instance.Panel3d.Size; Size textureSize = sprite.Texture.Size; sprite.Position = new Vector2(0, 0); sprite.Scaling = new Vector2((float)screenSize.Width / textureSize.Width, (float)screenSize.Height / textureSize.Height + 0.01f); //Crear Text menuLineas = new TgcText2d[] { new TgcText2d(), new TgcText2d(), new TgcText2d() }; //Cargar Textos menuLineas[0].Text = "DESARROLLADO POR"; menuLineas[0].Position = new Point(0, posCreditos - (2 * distEntreLineas)); menuLineas[0].changeFont(new System.Drawing.Font("TimesNewRoman", 23, FontStyle.Bold | FontStyle.Bold)); menuLineas[1].Text = "DI PRINZIO AGUSTIN"; menuLineas[1].Position = new Point(0, posCreditos - (distEntreLineas)); menuLineas[1].changeFont(new System.Drawing.Font("TimesNewRoman", 23, FontStyle.Bold | FontStyle.Bold)); menuLineas[2].Text = "VARELA FRANCO"; menuLineas[2].Position = new Point(0, posCreditos); menuLineas[2].changeFont(new System.Drawing.Font("TimesNewRoman", 23, FontStyle.Bold | FontStyle.Bold)); foreach (TgcText2d linea in menuLineas) { linea.Color = Color.Blue; } //Inicializa el d3dInput input = GuiController.Instance.D3dInput; }
/// <summary> /// Obtiene la direccion a moverse por la camara en base a la entrada de teclado /// </summary> private Vector3 getMovementDirection(TgcD3dInput d3dInput) { Vector3 direction = new Vector3(0.0f, 0.0f, 0.0f); //Forward if (d3dInput.keyDown(Key.W)) { if (!moveForwardsPressed) { moveForwardsPressed = true; currentVelocity = new Vector3(currentVelocity.X, currentVelocity.Y, 0.0f); } direction.Z += 1.0f; } else { moveForwardsPressed = false; } //Backward if (d3dInput.keyDown(Key.S)) { if (!moveBackwardsPressed) { moveBackwardsPressed = true; currentVelocity = new Vector3(currentVelocity.X, currentVelocity.Y, 0.0f); } direction.Z -= 1.0f; } else { moveBackwardsPressed = false; } //Strafe right if (d3dInput.keyDown(Key.D)) { if (!moveRightPressed) { moveRightPressed = true; currentVelocity = new Vector3(0.0f, currentVelocity.Y, currentVelocity.Z); } direction.X += 1.0f; } else { moveRightPressed = false; } //Strafe left if (d3dInput.keyDown(Key.A)) { if (!moveLeftPressed) { moveLeftPressed = true; currentVelocity = new Vector3(0.0f, currentVelocity.Y, currentVelocity.Z); } direction.X -= 1.0f; } else { moveLeftPressed = false; } //Jump if (d3dInput.keyDown(Key.Space)) { if (!moveUpPressed) { moveUpPressed = true; currentVelocity = new Vector3(currentVelocity.X, 0.0f, currentVelocity.Z); } direction.Y += 1.0f; } else { moveUpPressed = false; } //Crouch if (d3dInput.keyDown(Key.LeftControl)) { if (!moveDownPressed) { moveDownPressed = true; currentVelocity = new Vector3(currentVelocity.X, 0.0f, currentVelocity.Z); } direction.Y -= 1.0f; } else { moveDownPressed = false; } return direction; }
public PantallaJuego(Auto autito) { /*En PantallaInicio le paso a Pantalla juego con qué auto jugar. Acá lo asigno a la pantalla, cargo el coso que capta el teclado, creo el Nivel1 y lo pongo en la lista de renderizables, para que sepa con qué escenario cargarse */ this.auto = autito; auto.mesh.move(new Vector3(0, 0, -3100)); auto.mesh.rotateY(-1.57f); this.entrada = GuiController.Instance.D3dInput; this.nivel = EjemploAlumno.getInstance().getNiveles(0); //Barrita de vida vida = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\vidaPersonaje\\vida.jpg"); barra = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\vidaPersonaje\\fondobarra.png"); barra2 = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\vidaPersonaje\\fondobarra2.png"); vida.setEscala(escalaInicial); barra.setEscala(new Vector2(6.81f, 1f)); barra2.setEscala(new Vector2(6.81f, 1f)); Vector2 posicionbarra = new Vector2(10, 5); vida.setPosicion(new Vector2(155f, 9.3f)); //CUENTA REGRESIVA uno = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\cuentaRegresiva\\1.png"); uno.setCentrarYEscalar(); dos = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\cuentaRegresiva\\2.png"); dos.setCentrarYEscalar(); tres = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\cuentaRegresiva\\3.png"); tres.setCentrarYEscalar(); //Instrucción de misión del juego misionMario = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\Mision\\m_mario.png"); misionMario.setCentrarYEscalar(); misionLuigi = new Imagen(GuiController.Instance.AlumnoEjemplosMediaDir + "LosBorbotones\\Mision\\m_luigi.png"); misionLuigi.setCentrarYEscalar(); // CAMARA TERCERA PERSONA GuiController.Instance.ThirdPersonCamera.Enable = true; GuiController.Instance.ThirdPersonCamera.resetValues(); Vector2 vectorCam = (Vector2)GuiController.Instance.Modifiers["AlturaCamara"]; GuiController.Instance.ThirdPersonCamera.setCamera(auto.mesh.Position, vectorCam.X, vectorCam.Y); GuiController.Instance.ThirdPersonCamera.rotateY(auto.mesh.Rotation.Y); //CARGAR MÚSICA. Musica track = new Musica("ramones.mp3"); this.musica = track; musica.playMusica(); musica.setVolume(35); Shared.debugMode = false; //Puntos de juego puntos = new TgcText2d(); puntos.Text = "0"; puntos.Color = Color.DarkRed; puntos.Align = TgcText2d.TextAlign.RIGHT; puntos.Position = new Point(30, 30); puntos.Size = new Size(100, 50); puntos.changeFont(new System.Drawing.Font("TimesNewRoman", 25, FontStyle.Bold)); //Reloxxxx this.horaInicio = DateTime.Now; this.tiempoRestante = new TgcText2d(); this.tiempoRestante.Text = "65"; this.tiempoRestante.Color = Color.Green; this.tiempoRestante.Align = TgcText2d.TextAlign.RIGHT; this.tiempoRestante.Position = new Point(300, 30); this.tiempoRestante.Size = new Size(100, 50); this.tiempoRestante.changeFont(new System.Drawing.Font("TimesNewRoman", 25, FontStyle.Bold)); this.comienzoNivel = true; //FLECHA NORMAL colision collisionNormalArrow = new TgcArrow(); collisionNormalArrow.BodyColor = Color.Blue; collisionNormalArrow.HeadColor = Color.Yellow; collisionNormalArrow.Thickness = 1.4f; collisionNormalArrow.HeadSize = new Vector2(10, 20); //FLECHA debug (la usamos para conocer posiciones donde querramos posicionar meshes) debugArrow = new TgcArrow(); debugArrow.BodyColor = Color.Purple; debugArrow.HeadColor = Color.Yellow; debugArrow.Thickness = 3f; debugArrow.HeadSize = new Vector2(10, 20); debugArrow.PStart = new Vector3(0, 400f, 0); debugArrow.PEnd = new Vector3(0, 10f, 0); debugArrow.updateValues(); //USER VARS GuiController.Instance.UserVars.addVar("DistMinima"); GuiController.Instance.UserVars.addVar("Velocidad"); GuiController.Instance.UserVars.addVar("Vida"); GuiController.Instance.UserVars.addVar("AngCol"); GuiController.Instance.UserVars.addVar("AngRot"); GuiController.Instance.UserVars.addVar("NormalObstaculoX"); GuiController.Instance.UserVars.addVar("NormalObstaculoZ"); }
/// <summary> /// Crea todos los modulos necesarios de la aplicacion /// </summary> internal void initGraphics(MainForm mainForm, Control panel3d) { this.mainForm = mainForm; this.panel3d = panel3d; this.fullScreenPanel = new FullScreenPanel(); panel3d.Focus(); //Iniciar graficos this.tgcD3dDevice = new TgcD3dDevice(panel3d); this.texturesManager = new TgcTexture.Manager(); this.tgcD3dDevice.OnResetDevice(tgcD3dDevice.D3dDevice, null); //Iniciar otras herramientas this.texturesPool = new TgcTexture.Pool(); this.logger = new Logger(mainForm.LogConsole); this.text3d = new TgcDrawText(tgcD3dDevice.D3dDevice); this.tgcD3dInput = new TgcD3dInput(mainForm, panel3d); this.fpsCamera = new TgcFpsCamera(); this.rotCamera = new TgcRotationalCamera(); this.thirdPersonCamera = new TgcThirdPersonCamera(); this.axisLines = new TgcAxisLines(tgcD3dDevice.D3dDevice); this.userVars = new TgcUserVars(mainForm.getDataGridUserVars()); this.modifiers = new TgcModifiers(mainForm.getModifiersPanel()); this.elapsedTime = -1; this.frustum = new TgcFrustum(); this.mp3Player = new TgcMp3Player(); this.directSound = new TgcDirectSound(); this.fog = new TgcFog(); this.currentCamera = this.rotCamera; this.customRenderEnabled = false; this.drawer2D = new TgcDrawer2D(); this.shaders = new TgcShaders(); //toogles this.rotCamera.Enable = true; this.fpsCamera.Enable = false; this.thirdPersonCamera.Enable = false; this.fpsCounterEnable = true; this.axisLines.Enable = true; //Cargar algoritmos exampleLoader = new ExampleLoader(); examplesDir = System.Environment.CurrentDirectory + "\\" + ExampleLoader.EXAMPLES_DIR + "\\"; examplesMediaDir = examplesDir + "Media" + "\\"; alumnoEjemplosDir = System.Environment.CurrentDirectory + "\\" + "AlumnoEjemplos" + "\\"; alumnoEjemplosMediaDir = alumnoEjemplosDir + "AlumnoMedia" + "\\"; exampleLoader.loadExamplesInGui(mainForm.TreeViewExamples, new string[] { examplesDir, alumnoEjemplosDir }); //Cargar shaders del framework this.shaders.loadCommonShaders(); //Cargar ejemplo default TgcExample defaultExample = exampleLoader.getExampleByName(mainForm.Config.defaultExampleName, mainForm.Config.defaultExampleCategory); executeExample(defaultExample); }
private void jugar(TgcD3dInput input, float t) { camaraQ3.LockCam = true; camaraQ3.updateCamera(); // Cargar variables de shader, por ejemplo el tiempo transcurrido. effect.SetValue("time", time); //El personaje es una caja, uso su bounding box para detectar colisiones personaje.Position = camaraQ3.getPosition(); personaje.move(new Vector3(0f, -30f, 0f)); //personaje.render(); //personaje.BoundingBox.render(); foreach (TgcBoundingBox item in obtenerListaZona(ultimaPosCamara)) { if (TgcCollisionUtils.testAABBAABB(personaje.BoundingBox, item)) { camaraQ3.setPosition(ultimaPosCamara); //camaraQ3.setCamera(ultimaPosCamara, camaraQ3.getLookAt() + ultimaPosCamara); } } if (GuiController.Instance.D3dInput.keyDown(Microsoft.DirectX.DirectInput.Key.C)) { velocidadEnemigos = velocidadEnemigos + 0.4f; if (velocidadEnemigos >= 0f) { velocidadEnemigos = 0f; } } if (GuiController.Instance.D3dInput.keyDown(Microsoft.DirectX.DirectInput.Key.V)) { velocidadEnemigos = velocidadEnemigos - 0.4f; } ajustarZoom(); ajustarVelocidad(); renderizarBarriles(t); renderizarPiedras(); //Renderizar suelo y skybox piso.render(); //terreno.render(); skyBox.render(); //Emitir un disparo if (input.buttonPressed(TgcD3dInput.MouseButtons.BUTTON_LEFT)) { posicionRayBala = camaraQ3.getPosition(); unaBala.velocidadVectorial = camaraQ3.getLookAt() - camaraQ3.getPosition(); unaBala.ray = new TgcRay(posicionRayBala, unaBala.velocidadVectorial); huboDisparo = true; disparo.SoundBuffer.SetCurrentPosition(0); disparo.play(false); } //Reviso si colisiono contra un barril si hubo disparo if (huboDisparo) { foreach (Barril b in barriles) { if (!b.fueDisparado && TgcCollisionUtils.intersectRayAABB(unaBala.ray, b.mesh.BoundingBox, out col)) { boundingBarril = new TgcBoundingSphere(b.mesh.BoundingBox.calculateBoxCenter(), 400f); disparoBarril = true; barrilDisparado = b; b.fueDisparado = true; if (barriles.TrueForAll(fueDisparado)) { reproducirSorpresa = true; } explosion.SoundBuffer.SetCurrentPosition(0); explosion.play(false); huboDisparo = false; break; } } if (barrilDisparado!=null) { //barriles.Remove(barrilDisparado); barrilDisparado = null; } } //Se dibuja siempre al principio, habria que hacer instancias y dibujarlas cada vez que se disparo a un barril en esa posicion //Renderizar original e instancias (no dibujo original, solo instancias) foreach (Enemigo enemigo in instanciasEnemigos) { enemigo.meshEnemigo.animateAndRender(); if (enemigo.estaVivo) { rotarMesh(enemigo.meshEnemigo); enemigo.meshEnemigo.moveOrientedY(velocidadEnemigos); enemigo.ultimaPosicion = enemigo.meshEnemigo.Position; foreach (Barril item in barriles) { if (TgcCollisionUtils.testAABBAABB(enemigo.meshEnemigo.BoundingBox, item.mesh.BoundingBox)) { enemigo.meshEnemigo.rotateY(FastMath.PI_HALF); enemigo.meshEnemigo.moveOrientedY(velocidadEnemigos); } } foreach (TgcBoundingBox bb in obtenerListaZona(enemigo.meshEnemigo.Position)) { if (TgcCollisionUtils.testAABBAABB(enemigo.meshEnemigo.BoundingBox, bb)) { enemigo.meshEnemigo.rotateY(FastMath.PI_HALF); enemigo.meshEnemigo.moveOrientedY(velocidadEnemigos); } } //enemigo colisiona contra personaje if(TgcCollisionUtils.classifyBoxBox(enemigo.meshEnemigo.BoundingBox,personaje.BoundingBox) != TgcCollisionUtils.BoxBoxResult.Afuera) { //golpe.SoundBuffer.SetCurrentPosition(0); golpe.play(false); enemigo.meshEnemigo.moveOrientedY(-velocidadEnemigos*5); camaraQ3.setPosition(ultimaPosCamara); numVida -= 20f * t; barraVida.Scaling = new Vector2(0.3f*0.01f * numVida, 0.3f); //Muerte del personaje if (numVida<=0) { camaraQ3.LockCam = false; muerte.SoundBuffer.SetCurrentPosition(0); muerte.play(false); player.stop(); //player.closeFile(); estadoJuego = estado.muerto; } } if (huboDisparo || disparoBarril) { if (disparoBarril) { if (TgcCollisionUtils.testSphereAABB(boundingBarril,enemigo.meshEnemigo.BoundingBox)) { matarEnemigo(enemigo); } } if (TgcCollisionUtils.intersectRayAABB(unaBala.ray, enemigo.meshEnemigo.BoundingBox, out col)) { Vector3 p = enemigo.meshEnemigo.BoundingBox.calculateBoxCenter(); p.Y = 0f; TgcBoundingBox cuerpoChico = enemigo.meshEnemigo.BoundingBox.clone(); cuerpoChico.scaleTranslate(p, new Vector3(1.8f, 3.2f, 1.8f)); //se evalua si la bala dio contra el enemigo if (TgcCollisionUtils.intersectRayAABB(unaBala.ray, cuerpoChico, out col)) { TgcBoundingBox head = enemigo.meshEnemigo.BoundingBox.clone(); head.scaleTranslate(enemigo.meshEnemigo.BoundingBox.calculateBoxCenter() + new Vector3(0.0f, 60f, 5.0f), new Vector3(0.5f, 0.5f, 0.5f)); //se evalua si fue un headshot if (TgcCollisionUtils.intersectRayAABB(unaBala.ray, head, out col)) { headshot.SoundBuffer.SetCurrentPosition(0); headshot.play(false); puntaje += 20; //el headshot me da 20 puntos mas que un disparo normal } matarEnemigo(enemigo); huboDisparo = false; } } } } else { enemigo.tiempo += t; enemigo.efecto.SetValue("time", enemigo.tiempo); } } huboDisparo = false; disparoBarril = false; if (instanciasEnemigos.TrueForAll(estaMuerto)) { if (puntaje > Int32.Parse(System.IO.File.ReadAllText(alumnoMediaFolder + "\\record.txt"))) { textoPuntajeFinal.Text = "Nuevo Record! Tu puntaje fue: " + puntaje.ToString(); System.IO.File.WriteAllText(alumnoMediaFolder + "\\record.txt", puntaje.ToString()); //textoPuntajeRecord.Text = "Tu puntaje record es: " + puntaje.ToString(); } else { textoPuntajeFinal.Text = "Tu puntaje fue: " + puntaje.ToString(); } player.stop(); camaraQ3.LockCam = false; ganador.SoundBuffer.SetCurrentPosition(0); ganador.play(false); player.stop(); estadoJuego = estado.ganador; } //enemigoEffect.SetValue("time", time); //Renderizar instancias //renderizarTodosLosArboles(); //renderizarPasto(); qt.render(GuiController.Instance.Frustum, false); ultimaPosCamara = camaraQ3.getPosition(); //DIBUJOS 2D renderSprites(input); }
private void cartelMuerte(TgcD3dInput input) { GuiController.Instance.Drawer2D.beginDrawSprite(); fondoMenu.render(); if ( GuiController.Instance.D3dInput.keyDown(Microsoft.DirectX.DirectInput.Key.M)) { estadoJuego = estado.menu; } GuiController.Instance.Drawer2D.endDrawSprite(); textoPerdiste.render(); player.stop(); }
private void cartelGanador(TgcD3dInput input) { GuiController.Instance.Drawer2D.beginDrawSprite(); fondoMenu.render(); if ( GuiController.Instance.D3dInput.keyDown(Microsoft.DirectX.DirectInput.Key.M)) { puntajeRecord = Int32.Parse(System.IO.File.ReadAllText(alumnoMediaFolder + "\\record.txt")); textoPuntajeRecord.Text = "Tu puntaje record es: " + puntajeRecord.ToString(); estadoJuego = estado.menu; } GuiController.Instance.Drawer2D.endDrawSprite(); textoPuntajeFinal.render(); textoGanaste.render(); player.stop(); }
private void renderSprites(TgcD3dInput input) { //Iniciar dibujado de todos los Sprites de la escena GuiController.Instance.Drawer2D.beginDrawSprite(); //Dibujar sprite (si hubiese mas, deberian ir todos aquí) barraVida.render(); vida.Text = FastMath.Ceiling(numVida).ToString(); vida.render(); if (miraActivada) { mira_zoom.render(); } else { mira.render(); arma.render(); } //DISPARO if (input.buttonPressed(TgcD3dInput.MouseButtons.BUTTON_LEFT) && !miraActivada) { arma.Position = posicionArmaDisparo; arma.render(); arma.Position = posicionArmaOriginal; cantF = 16; } if (cantF > 0) { fuegoArma.updateAndRender(); cantF--; } textoPuntaje.Text = "Puntos: " + puntaje; textoPuntaje.render(); //Finalizar el dibujado de Sprites GuiController.Instance.Drawer2D.endDrawSprite(); }
private void menu(TgcD3dInput input) { camaraQ3.LockCam = true; GuiController.Instance.Drawer2D.beginDrawSprite(); //Dibujo menu fondoMenu.render(); titulo.render(); botonJugar.render(); botonInstrucciones.render(); botonCreditos.render(); //Hago click para empezar a jugar if (GuiController.Instance.D3dInput.keyDown(Microsoft.DirectX.DirectInput.Key.J)) { if (!primeraVez) { barraVida.Scaling = new Vector2(0.3f, 0.3f); velocidadEnemigos = -5f; instanciasEnemigos.Clear(); instanciasEnemigos = new List<Enemigo>(); barriles.Clear(); //loader.loadAnimationFromFile(originalEnemigo, mediaPath + "\\Animations\\Walk-TgcSkeletalAnim.xml"); inicializarEnemigos(4, 4, instanciasEnemigos, 3.4f, 200.0f); inicializarBarriles(); } primeraVez = false; player.closeFile(); player.play(true); puntaje = 0; numVida = 100; estadoJuego = estado.jugar; } if (GuiController.Instance.D3dInput.keyDown(Microsoft.DirectX.DirectInput.Key.I)) { estadoJuego = estado.instrucciones; } if (GuiController.Instance.D3dInput.keyDown(Microsoft.DirectX.DirectInput.Key.C)) { estadoJuego = estado.creditos; } GuiController.Instance.Drawer2D.endDrawSprite(); textoPuntajeRecord.render(); }