Posts Tagged ‘constructor’

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().