xna 12 - estadosdeljuego

Anuncio
Manejando Estados
del Juego
Por: Yolanda Martínez Treviño
Estados del Juego
  Al estar en un juego, el juego puede pasar por diferentes
estados.
Por ejemplo:
Al jugar PacMan, cambia el estado cuando “comes” el punto
grande que hace que los fantasmas se hagan transparentes,
entonces ahora debes perseguirlos en lugar de escapar de
ellos.
  Por lo general todos los juegos tienen 3 estados:
  Inicio
  En el juego
  Final
Una forma de manejar estados del
juego en XNA
  Define cuantos estados tendrá tu juego y dáles un valor
Por ejemplo:
  Inicio – 0
  En el juego – 1
  Final – 2
  Crea una variable de instancia para manejar el estado del
juego (el tipo de la variable depende del los valores que tu
hayas definido)
int estadoJuego;
Una forma de manejar estados del
juego en XNA
  Dentro de Initialize, inicializa tu variable con el estado
Inicio.
estadoJuego = 0; // representa el estado Inicio
  En Update y en Draw agrega un estatuto switch con un
caso para cada estado del juego y coloca las
instrucciones en el caso correspondiente.
  Asegúrate de cambiar el estado del juego cuando
corresponda, dentro de los casos.
Dentro del método Draw
spriteBatch.Begin();
switch (estadoJuego)
{
case 0: // estoy en el estado Start
spriteBatch.Draw(fondoInicio, … )
spriteBatch.DrawString(font, "Teclea espacio para iniciar”, …)
break;
case 1: // estoy en el estado In game
spriteBatch.Draw(fondoJuego, … )
spriteBatch.DrawString(font, "Teclea Q para terminar", …)
break;
case 2: // estoy en el estado Game Over
spriteBatch.Draw(fondoGameOver,… )
spriteBatch.DrawString(font, "Quieres jugar otra vez? (s/n)”, …)
break;
}
spriteBatch.End();
Dentro del método Update
switch (estadoJuego)
{
case 0: // estoy en el estado Start
if (estadoTeclado.IsKeyDown(Keys.Space))
estadoJuego = 1;
break;
case 1: // estoy en el estado In game
if (estadoTeclado.IsKeyDown(Keys.Q))
estadoJuego = 2;
break;
}
case 2: // estoy en el estado Game Over
if (estadoTeclado.IsKeyDown(Keys.S))
estadoJuego = 1;
if (estadoTeclado.IsKeyDown(Keys.N))
this.Exit();
break;
Descargar