Remake (parcial) de Fruity Frank... 03 - Moviendo el personaje

(Volver al índice)

Un juego real no se queda parado hasta que pulsemos una tecla, sino que debe proseguir continuamente: por ejemplo, aunque nosotros no hagamos nada, los enemigos deberán moverse. Normalmente, incluso en la pantalla de presentación habrá algún tipo de animación.

Por eso, lo habitual será que no usemos "SDLA_esperarTecla" sino "SDLA_teclaPulsada". La forma de emplear esta orden será indicarle entre paréntesis la tecla que queremos comprobar: if ( SDLA_teclaPulsada (TECLA_ABA) ) ..."

Hay varias constantes predefinidas, para representar las teclas más habituales:

Lo único que queda para que el personaje se mueva es que su posición no sean unas coordenadas fijas, como el (300,100) del ejemplo anterior, sino usar variables (por ejemplo: xPersonaje, yPersonaje) que modifiquemos cuando comprobemos que se pulsa una tecla.

Finalmente, el propio cuerpo del programa ya no deberá ejecutarse sólo una vez, sino repetirse hasta que se pulse cierta tecla (por ejemplo ESC).

La nueva apariencia de nuestro mini-juego será:

#include "SDL_ASI.h"

int main (int argc, char** argv)
{
    int xPersonaje=340, yPersonaje=100;

    SDLA_inicializar(640,480,24);

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


    do {
        SDLA_dibujarImagenOculta(fondoPantalla,96,0);
        SDLA_dibujarImagenOculta(personaje, xPersonaje, yPersonaje);
        SDLA_visualizarOculta();

        if ( SDLA_teclaPulsada (TECLA_ABA) )
          yPersonaje += 4;
        if ( SDLA_teclaPulsada (TECLA_ARR) )
          yPersonaje -= 4;
        if ( SDLA_teclaPulsada (TECLA_DER) )
          xPersonaje += 4;
        if ( SDLA_teclaPulsada (TECLA_IZQ) )
          xPersonaje -= 4;

    } while (! SDLA_teclaPulsada (TECLA_ESC));
    return 0;

}

Pero si nos acercamos mucho a los extremos, veremos que el personaje se puede salir de la pantalla de juego... o incluso de la pantalla del ordenador. Ésa será la próxima mejora.

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

(Volver al índice)