/// <summary> /// Permite al juego ejecutar lógica para, por ejemplo, actualizar el mundo, /// buscar colisiones, recopilar entradas y reproducir audio. /// </summary> /// <param name="gameTime">Proporciona una instantánea de los valores de tiempo.</param> protected override void Update(GameTime gameTime) { // Permite salir del juego if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: agregue aquí su lógica de actualización if (StateJuego == Juegostate.Logo) { if (sonarMusica) { WhootGames.Play(); sonarMusica = false; } } if (StateJuego == Juegostate.Juego1) { if (sonarMusica) { EligePalabra.Play(); sonarMusica = false; } foreach (Sprite palabra in listaPalabras) { Rectangle areaObjeto = new Rectangle((int)palabra.posicion.X, (int)palabra.posicion.Y, (int)palabra.textura.Width, (int)palabra.textura.Height); if (Mouse.GetState().LeftButton == ButtonState.Pressed) { if (areaObjeto.Intersects(new Rectangle(Mouse.GetState().X, Mouse.GetState().Y, 1, 1))) { palabra.esElegido = true; StateJuego = Juegostate.Intermedio; sonarMusica = true; } } } } if (StateJuego == Juegostate.Juego2) { foreach (Sprite objeto in listaObjetos) { objeto.Update(gameTime); Rectangle areaObjeto = new Rectangle((int)objeto.posicion.X, (int)objeto.posicion.Y, (int)objeto.textura.Width, (int)objeto.textura.Height); if (Mouse.GetState().LeftButton == ButtonState.Pressed) { if (areaObjeto.Intersects(new Rectangle(Mouse.GetState().X, Mouse.GetState().Y, 1, 1))) { if (objeto.esElegido == true) { Correct.Play(); StateJuego = Juegostate.Juego3; } else { fallosObjetos++; Wrong.Play(); } } } } } if (StateJuego == Juegostate.Juego3) { if (sonarMusica) { RecuerdaPalabra.Play(); sonarMusica = false; } foreach (Sprite palabra in listaPalabras) { Rectangle areaObjeto = new Rectangle((int)palabra.posicion.X, (int)palabra.posicion.Y, (int)palabra.textura.Width, (int)palabra.textura.Height); if (Mouse.GetState().LeftButton == ButtonState.Pressed) { if (areaObjeto.Intersects(new Rectangle(Mouse.GetState().X, Mouse.GetState().Y, 1, 1))) { if (palabra.esElegido == true) { Correct.Play(); StateJuego = Juegostate.Score; } else { fallosPalabras++; Wrong.Play(); } } } } } if (StateJuego == Juegostate.Score) { ameba.update(gameTime); } base.Update(gameTime); }
/// <summary> /// Se llama cuando el juego debe realizar dibujos por sí mismo. /// </summary> /// <param name="gameTime">Proporciona una instantánea de los valores de tiempo.</param> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Black); if (StateJuego == Juegostate.Logo) { spriteBatch.Begin(); spriteBatch.Draw(Logo, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego1; sonarMusica = true; tiempoLogo = 0; } } if (StateJuego == Juegostate.Juego1) { foreach (Sprite palabra in listaPalabras) { palabra.Draw(spriteBatch); } } if (StateJuego == Juegostate.Intermedio) { if (sonarMusica) { EncuentraSimbolo.Play(); sonarMusica = false; } switch (simboloElegido) { case 0: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo0, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; case 1: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo1, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; case 2: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo2, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; case 3: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo3, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; case 4: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo4, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; case 5: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo5, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; case 6: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo6, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; case 7: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo7, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; case 8: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo8, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; case 9: spriteBatch.Begin(); spriteBatch.Draw(explicacionSimbolo9, Vector2.Zero, Color.White); spriteBatch.End(); tiempoLogo += (float)gameTime.ElapsedGameTime.TotalSeconds; if (tiempoLogo >= tiempoLimiteLogo) { StateJuego = Juegostate.Juego2; sonarMusica = true; tiempoLogo = 0; } break; } } if (StateJuego == Juegostate.Juego2) { spriteBatch.Begin(); spriteBatch.DrawString(tizaFont, "Fallos:"+fallosObjetos, Vector2.Zero, Color.White); spriteBatch.End(); foreach (Sprite objeto in listaObjetos) { objeto.Draw(spriteBatch); } } if (StateJuego == Juegostate.Juego3) { foreach (Sprite palabra in listaPalabras) { palabra.Draw(spriteBatch); } } if (StateJuego == Juegostate.Score) { spriteBatch.Begin(); spriteBatch.DrawString(tizaFont, "Jugador", new Vector2(20,20), Color.White); spriteBatch.DrawString(tizaFont, "Fallos Simbolos:" + fallosObjetos, new Vector2(20, 50), Color.White); spriteBatch.DrawString(tizaFont, "Fallos Palabra:" + fallosPalabras, new Vector2(20, 80), Color.White); spriteBatch.DrawString(tizaFont, "Tiempo Simbolos:" + (fallosObjetos + fallosPalabras), new Vector2(20, 110), Color.White); spriteBatch.DrawString(tizaFont, "Tiempo Palabra:" + (fallosObjetos + fallosPalabras), new Vector2(20, 140), Color.White); spriteBatch.DrawString(tizaFont, "Fallos Totales:" + (fallosObjetos + fallosPalabras), new Vector2(20, 170), Color.White); spriteBatch.DrawString(tizaFont, "Tiempo Total:" + (fallosObjetos + fallosPalabras), new Vector2(20, 200), Color.White); spriteBatch.End(); ameba.Draw(gameTime, spriteBatch); } // TODO: agregue aquí el código de dibujo base.Draw(gameTime); }
/// <summary> /// Permite que el juego realice la inicialización que necesite para empezar a ejecutarse. /// Aquí es donde puede solicitar cualquier servicio que se requiera y cargar todo tipo de contenido /// no relacionado con los gráficos. Si se llama a base.Initialize, todos los componentes se enumerarán /// e inicializarán. /// </summary> protected override void Initialize() { // TODO: agregue aquí su lógica de inicialización StateJuego = Juegostate.Logo; rnd = new Random(); tiempoLogo = 0; tiempoLimiteLogo = 3; fallosObjetos = 0; fallosPalabras = 0; sonarMusica = true; base.Initialize(); }