Tutorial MonoGame – Preparando nuestra clase Game1

Tutorial MonoGame – Preparando nuestra clase Game1

En este tutorial vamos a hacer algunas modificaciones a la clase Game1.cs para agregar una estructura que vamos a estar utilizando mucho y también para agregar nuestra primera pantalla.

Lo primero que vamos a necesitar es agregar un nuevo import

Con esto vamos a poder utilizar el ContentManager y acceder a los assets.

Vamos a crear una estructura llamada GameData, esta estructura contendrá objetos que vamos a ir compartiendo entre las distintas pantallas, guardando el estado entre cada una de ellas.

Luego del namespace, crea la siguiente estructura

En el método Initialize vamos a hacer una inicialización de nuestro GameData, para que contenga las referencia de los datos que necesitamos

El spriteBatch lo vamos a inicializar en el LoadContent, porque es hasta ese momento que cargamos todo el GraphicsDevice y es lo que necesitamos

Vamos a actualizar el método Update, aquí veremos el uso del screen manager que hicimos y sabremos de la utilidad, ya que esta clase se encargará de irle pasando las pantallas a la clase sin necesidad de escribir mucho código.

Como puedes ver, en el método Update, vamos a ir procesando tanto los cambios de pantalla como los del ratón, también se estará actualizando el método Update de nuestras pantallas, y le pasamos el gameTime que crea MonoGame, de tal forma que todas las pantallas tengan el mismo tiempo.

Ahora actualicemos el método Draw

El SpriteBatch es una clase que nos permite dibujar varios sprites utilizando las mismas configuraciones, el spriteBatch es muy importante en MonoGame porque nos permite dibujar los sprites de una forma eficiente, para que esto funcione correctamente, necesitamos hacer que todos los sprites sean dibujados en un mismo lote, para que se procese mejor.

Para esto, usamos spriteBatch.Begin() lo que indica que se está preparando para dibujar todos los sprites que vayan después de esta sentencia, nosotros pasamos el método Draw de la pantalla, que en sí va a dibujar otros sprites; una vez que ya hayamos puesto todos los sprites a dibujar, mandamos a llamar el método spriteBatch.End, lo que indica que se ha finalizado de obtener los sprites y que ese bloque se puede mandar a dibujar en pantalla.

Finalizando

Si corres el proyecto en este momento, te va a salir un error parecido a esto

Es normal, ya que lo que nos indica es que el stack está vació y no podemos sacar ninguna pantalla ya que no hay nada. En el siguiente tutorial vamos a crear nuestra primera pantalla y empezar a ver más cosas en nuestro juego.