06 octubre 2008

Remake (parcial) de Fruity Frank... 02 - Mostrar fondo y personaje

En un juego real no existe sólo la imagen de fondo. Típicamente existirá también al menos un personaje que se mueva por ella. Hoy vamos a dibujar ese personaje...

En primer lugar, hacemos una copia de la imagen de fondo inicial, la que mostraba tanto la pantalla de fondo del juego como nuestro personaje (o incluso dos copias, si queremos conservar el original). En una de las imágenes borramos el personaje, de modo que sólo se vea realmente el fondo. En la otra "recortamos" el personaje, eliminando todo lo demás (usando cualquier editor gráfico, como por ejemplo XnView). Ambas imágenes deben estar en formato BMP. Por ejemplo, el fondo podría ser "fondo.bmp" y el personaje podría ser "personaje1.bmp" (el 1 es porque más adelante tendremos más de una imagen del personaje, para dar impresión de movimiento).

Una vez preparadas las imágenes, los cambios a realizar en nuestro "juego.cpp" son mínimos:.


  • Declararemos la variable que representará la imagen del personaje: SDLA_Imagen* personaje;
  • Cargaremos esa imagen desde fichero: personaje=SDLA_cargarImagen("personaje1.bmp");

  • Y la dibujaremos en la pantalla oculta, en ciertas coordenadas (por ejemplo, x=300, y=100), antes de mostrar ésta: SDLA_dibujarImagenOculta(personaje,300,100);



Es decir, el fuente sería algo como:

#include "SDL_ASI.h"

int main (int argc, char** argv)
{
SDLA_inicializar(640,480,24);

SDLA_Imagen* fondoPantalla;
SDLA_Imagen* personaje;
fondoPantalla=SDLA_cargarImagen("fondo.bmp");
personaje=SDLA_cargarImagen("personaje1.bmp");

SDLA_dibujarImagenOculta(fondoPantalla,0,0);
SDLA_dibujarImagenOculta(personaje,300,100);
SDLA_visualizarOculta();

SDLA_esperarTecla();
return 0;
}


Pero ese personaje todavía no se mueve... Por pocas horas, mañana sí lo hará.

Para ver todo el proyecto en conjunto: code.google.com/p/fruityfrank