Creación de juegos mediante la plataforma XNA de Microsoft Visual Studio
Links para descargar material:
Parte 01: https://www.dropbox.com/s/2b3f27izg3wfqws/01.XNA.zip
Parte 02: https://www.dropbox.com/s/ep3634jsjullkbs/02.XNA.zip
Parte 03: https://www.dropbox.com/s/9e3q068t6mlkted/03.XNA.zip
Parte 04: https://www.dropbox.com/s/u4navlzlhtecjm0/04.XNA.zip
Parte 05: https://www.dropbox.com/s/oqjll5c73kbvu1j/05.XNA.zip
3. Introducción
Los Fondos Desplazables permiten crear el efecto
de “movimiento” en cualquier juego, sin necesidad
de rende rizar grandes cantidades de elementos en
pantalla. La idea general consiste en utilizar una
imagen de mayor tamaño que la pantalla para luego
moverla de acuerdo a lo que suceda en el juego
generando el efecto de traslación.
4. ¿Que Necesitamos?
Una imagen de fondo para crear el efecto de movimiento. Debe ser lo
suficientemente grande para no dejar bordes en nuestra pantalla definida de
juego.
El Proceso:
Añadir el archivo de imagen de fondo a nuestro proyecto
Definir variables en nuestro código para manejar la textura
Cargar la textura en memoria
Dibujar la posición inicial del fondo
Actualizar la posición en el método Update
5. Crear un nuevo proyecto XNA Game
Si ejecuta el programa verá una pantalla azul, Felicitaciones ya haz hecho el
tercer juego en XNA
Agregar la capeta Imágenes, y dentro de esta colocar la imgen (sprite) que
deseamos utilizar como background:
Recomiendo definir los atributos width y heigth, luego establecer el tamaño
del formulario en el “Constructor” de la clase Game1. Definir estos atributos:
int width;
int height;
6. En el constructor de la clase Game1
// change windows size
width = 800;
height = 600;
graphics.PreferredBackBufferWidth = width;
graphics.PreferredBackBufferHeight = height;
Agregue estos atributos a la clase Game1
Texture2D esena;
Rectangle rectangle1;
Rectangle rectangle2;
int r1x;
int r2x;
int velocidad;
En el Initialize coloque las siguientes líneas:
r1x = 0;
rectangle1 = new Rectangle(r1x, 0, width, height);
r2x = r1x + rectangle1.Width;
rectangle2 = new Rectangle(r2x, 0, width, height);
velocidad = 5;
7. En el Load colocar la siguiente línea:
esena = Content.Load<Texture2D>("Imagenes/Background");
En el Update colocar las siguientes líneas:
r1x -= velocidad;
r2x -= velocidad;
rectangle1 = new Rectangle(r1x, 0, width, height);
rectangle2 = new Rectangle(r2x, 0, width, height);
if (rectangle1.X + rectangle1.Width == 0)
{
r1x = width;
}
if (rectangle2.X + rectangle2.Width == 0) {
r2x = width;
}
En el Draw colocar las siguientes líneas:
spriteBatch.Begin();
spriteBatch.Draw(esena, rectangle1, Color.White);
spriteBatch.Draw(esena, rectangle2, Color.White);
spriteBatch.End();
Ya podemos probar nuestro efecto de fondo desplazable!
9. Cree la carpeta Sonidos y dentro de esta carpeta coloque un archivo WAV para
el efecto de sonido y un archivo MP3 para el sonido del juego
Agregue estos atributos a la clase:
SoundEffect sonido;
Song musica;
bool swMusica;
int con;
En el Initialize agregar las siguiente línea:
swMusica = true;
int con = 0;
En el Load agregar las siguientes líneas:
// Load sounds
sonido = Content.Load<SoundEffect>("Sonidos/Efecto");
musica = Content.Load<Song>("Sonidos/Musica");
Agregue este método a la clase Game1:
private void PlayMusic(Song gameplayMusic)
{
try
{
MediaPlayer.Play(gameplayMusic);
MediaPlayer.IsRepeating = true;
}
catch { }
}
10. En el Update agregue las siguientes líneas:
if(swMusica)
{
PlayMusic(musica);
swMusica = false;
}
con++;
if (con % 300 == 0) sonido.Play();
Ya puedes probar tus efectos de sonido
11. Taller #3
Realiza un juego con una imagen desplazable, de derecha a izquierda (en
sentido contrario al ejemplo)
Agrega varios Sprites fijos y uno animado, unos que se muevan con la imagen
y otros que queden fijos
Coloca una canción de fondo y 2 efectos de sonido que suenen alternados en
el juego en lapsos de tiempo constantes