Archive for the ‘Serpiente’ Category

Clase items del video juego en xna serpiente

La clase Items es muy sencilla. La idea de esta clase es sacar lo que se va a comer la serpiente en un punto aleatorio de la pantalla.Para hacerlo un poco más estético he incluido unos cuantos dibujos de frutas al directorio Content, en el que he creado una carpeta que se llama Models.

El constructor de la clase es la parte más importante, puesto que cada vez que instanciemos un objeto de tipo Item en la clase principal del juego, tendrá que salir una nueva fruta en una parte aleatoria de la pantalla para ello he hecho lo siguiente:

Pongo las variables estáticas de la clase que me indicarán cuál es el tamaño de la pantalla.

//inicialize the variables with screen size
Game1.windowHeight = Game1.graphics.PreferredBackBufferHeight;
Game1.windowWidth = Game1.graphics.PreferredBackBufferWidth;

Cargo la lista de texturas con los modelos que tenemos en la carpeta Models del Content de nuestro juego.

//Inicialize Items list with content.
_fruitList.Add(game.Content.Load("Models\\Apple"));
_fruitList.Add(game.Content.Load("Models\\Banana"));
_fruitList.Add(game.Content.Load("Models\\Cherry"));
_fruitList.Add(game.Content.Load("Models\\Orange"));
_fruitList.Add(game.Content.Load("Models\\Pear"));
_fruitList.Add(game.Content.Load("Models\\Strawberry"));

Ahora llamo a la función que hubicará, la fruta, en un posición de la pantalla aleatoria. Dentro de esta función llamo a otra de la serpiente para saber si la posición elegida por la fruta no está ocupada por la serpiente.

//Inicialize itemPosition
this.mtInicializeRandomPosition();

Ahora el item seleccionado al azar (para que vayan rotando) de la lista de modelos

//Select a random item from fruiList
Random rnd = new Random();
_fruitSelectedItem = _fruitList[rnd.Next(0,_fruitList.Count)];

Con esto ya tengo un item cargado en una posición aleatoria y buena de la pantalla. Ya estaría listo para ser dibujado, cosa que hará el bucle principal con la función Draw().

Clase snake serpiente video jueog xna

La clase Snake tiene como público lo que es la serpiente en sí, que son 2 listas en la que una tendrá las texturas de cada cuadrado, y en otra en el mismo índice de lista tendrá la posición de esa textura. Tiene ancho y alto (width y height) que será el tamaño de cada cuadrado de la serpiente. También tiene la dirección en la que va y el estado en el que está  (estado start, normal, o died).

Luego tiene otras variables privadas que nos ayudarán a hacer procesos con la serpiente.

Para este video-juego, incluí los métodos de dibujar un cuadrado y un rectangulo que se explican en este tutorial -> Crear cuadrados y circulos., en la clase de la serpiente.

Cuando se llama al constructor de la clase, es decir cuando la clase principal instacia un objeto de tipo Snake, creamos la serpiente con 2 cuadrados como cuerpo y un circulo como cabeza. También le damos la dirección derecha y el estado Start.

Los demás métodos de movimiento y golpearse contra el muro o autocomerse, los explicaremos con más detalle en los siguietnes posts.

El draw de la serpiente no lo incluí en la propia clase y lo hice en el de la clase principal. Pero simplemente consiste en recorrer la lista de texturas y pintarla con la lista correlativa de posiciones.

 

 

Video juego serpiente c# xna clases

Para este primer video juego cree 2 clases más de la principal (Game1)  que viene como nombre por defecto cuando creas un nuevo proyecto en el Visual Studio con XNA.

Tenemos la clase Snake y la clase Items, donde en cada una de estas clases implementaremos sus propiedades y métodos específicos del elemento en cuestión. Así por ejemplo Snake tiene en su interior los métodos de moverse, updates, etc. e Items igualmente.

Siguiente -> clase Snake

Principal -> Video juego Snake

 

video juego snake serpiente en xna

Este es el primer video juego que desarrollé en XNA con C# y que me sirvió para aprender como funcionaba este motor de juegos.

Desde luego no es la mejor opción y revisándolo me he dado cuenta de muchas cosas que mejoraría, pero lo que si que es cierto es que me sirvió como guia de aprendizaje para posteriores juegos.

Por ello voy a ir explicándolo en este tutorial para aquellos que quieran iniciarse en el desarrollo de video juegos en XNA.

El código está comentado y escrito en “spanglish” puesto que mi inglés no era muy bueno y el subconsciente me traicionaba mucho.

Podeís descargar el código del juego Snake aquí  -> descargar Snake
Vamos a intentar ir por partes:

  1. Clases del juego
  2. Clase Snake
  3. Clase Items