Ahora que sabemos un poco lo que
es XNA, ya podemos arrancar el XNA Game Studio Express y empezar a hacer alguna
cosilla.

 

 

Pulsamos sobre Archivo y luego Nuevo proyecto, nos aparecerá una ventana donde elegir el tipo de
proyecto:

 

Elegimos el tipo Windows Game y le damos un nombre al
proyecto. Con lo que se crea automáticamente ya tenemos bastante trabajo
ahorrado, podemos pulsar F5 y veremos que aparece una ventana con el fondo azul
¡¡¡¡ hasta ahora había que hacer esto a mano!!!! XD

 

 

Pero bueno lo primero que vamos a
hacer es ver las partes de las que se compone la clase Game1.cs

 

Este es el primer trozo de código que nos encontramos:

#region Using Statements

using System;

using System.Collections.Generic;

using Microsoft.Xna.Framework;

using Microsoft.Xna.Framework.Audio;

using Microsoft.Xna.Framework.Content;

using Microsoft.Xna.Framework.Graphics;

using Microsoft.Xna.Framework.Input;

using Microsoft.Xna.Framework.Storage;

#endregion

 

Se trata de las librerías que necesitaremos para
comunicarnos con los diferentes dispositivos, si hiciera falta aquí es donde
podríamos añadir alguna más.
 

GraphicsDeviceManager graphics;
ContentManager
content;

 

public Game1()
{
    graphics = new GraphicsDeviceManager(this);
   
content = new ContentManager(Services);
}

Aquí ya vienen declarados dos objetos, el primero
de tipo GraphicsDeviceManager nos
vale para gestionar las operaciones con la tarjeta gráfica, y el segundo el ContentManager sirve para gestionar los
objetos como texturas y cosas así que utiliza el juego cuando está
ejecutándose, se encarga de cargar los diferentes objetos, quitarlos y llamar
al recolector de basura para destruirlos.

protected override void Initialize()
{
   // TODO: Add your initialization logic here

   base.Initialize();
}

En este método puedes poner todo aquello que cuando
arranque el juego necesites que este presente o sea inicializado. Como pueden
ser los contadores de vidas, puntos, carga de objetos, etc.

protected override void LoadGraphicsContent(bool
loadAllContent)
{
    if (loadAllContent)
    {
       // TODO: Load any ResourceManagementMode.Automatic content

    }
       // TODO: Load any ResourceManagementMode.Manual content
}

protected override void UnloadGraphicsContent(bool
unloadAllContent)
{

   if (unloadAllContent == true)
   {
       content.Unload();
  
}
}

En estos dos
métodos es donde entrán los graficos, el primer método lo utilizaremos para
cargar las texturas que necesitemos y el segundo método para liberar la memoria
de lo cargado anteriormente.
 

protected override void Update(GameTime
gameTime)
{

   // Allows the default game to exit on Xbox 360 and Windows

   if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
       this.Exit();

   // TODO: Add your update logic here

    base.Update(gameTime);

}

Todo el código que coloquemos dentro de Update se
ejecutará en cada instante de tiempo.

protected override void Draw(GameTime gameTime)
{

   graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

   // TODO: Add your drawing code here

   base.Draw(gameTime);

}

Aquí en esta parte del código colocamos los
objetos que tienen que ser dibujados en cada frame. Trabaja tan rápido como el
método Update y además aquí podemos indicar que fondo tiene que tener la
pantalla, por ejemplo si quitáis Color.CornflowerBlue y
ponéis Color. os aparecerá automáticamente una lista de colores
que podéis usar como fondo.

Entonces cuando arranca el programa ¿que es lo que pasa?
bueno pues que el código que comienza a ejecutarse es el contenido en la clase Program.cs
donde se crea un objeto de tipo Game, para ello vamos al método public Game1()de
la clase Game1 y crea los dos objetos GraphicsDeviceManager
y ContentManager, ya 
estaría creado el juego, ahora volvemos a la clase Program  y se ejecuta game.Run();.

Tenemos arrancado el juego pero internamente
tiene que iniciar todos sus objetos y contadores para que podamos empezar a
jugar así que ejecuta el método Initialize()  y
desde dentro de este método cuando llega a la instrucción base.Initialize();
carga todos los objetos gráficos indicados en LoadGraphicsContent.

Lo único que le queda es ir a Update
correr el código que tenga dentro e ir luego al método Draw y dibujar la pantalla y
todos los objetos que allí estén indicados. Con todo dibujado vuelve el
programa a comprobar y ejecutar una y otra vez mediante el método Update las instrucciones del juego.

Bueno por hoy como creo que ya he cansado
bastante y sino se me va a hacer un post demasiado largo dejo el resto para
mañana. Si no os creéis la última parte que os acabo de contar podéis ejecutar
instrucción por instrucción el programa y verlo vosotros mismos.

 Saludetes[:D]