El trabajo propuesto

Hacer que el personaje se mueva a derecha o izquierda cuando se pulsen la flecha derecha y la izquierda del teclado, respectivamente. Deberá avanzar o retroceder 4 píxeles cada vez. También aparecerá un primer enemigo, el "escorpión", que se moverá solo, hacia la derecha, incluso aunque se salga por el borde derecho de la pantalla de juego. Para que la velocidad de juego no sea exageradamente alta en ordenadores rápidos, lo limitaremos a 25 fotogramas por segundo, haciendo una pausa de 40 ms al final de cada pasada del "bucle de juego" (y supondremos que el tiempo de cálculo y dibujado de cada fotograma es tan pequeño que se puede despreciar).

Forma de conseguirlo

  • Para comprobar si se pulsa la tecla de la derecha o la izquierda, usaremos una construcción parecida a la que ahora comprueba si se pulsa ESC: if ( Hardware. TeclaPulsada( Hardware. TECLA_DER) ) x+=4;
  • Para que el enemigo se mueva a la derecha, haremos lo que antes hacíamos en el personaje: dejar que su coordenada X sea variable, y aumentarla en cada "pasada" por el bucle principal del juego.
  • Lo de la pausa de 40 ms es muy sencillo, pero es una posibilidad de la clase Hardware que aún no habíamos usado: Hardware.Pausa( 40 ); Esta orden la usaremos cuando ya hemos dibujado todo en pantalla y hemos mostrado esta pantalla oculta.

La apariencia seguirá siendo muy sobria:

Apariencia de la version 0.03

El resultado debería ser algo como:

/** 
 *   Juego: Lgica de juego
 *  
 *   @see Hardware
 *   @author 1-DAI IES San Vicente 2009/10
 */
 
/* --------------------------------------------------         
   Parte de Death Pit - Remake
   Versiones hasta la fecha:
 
   Num.   Fecha       Por / Cambios
   ---------------------------------------------------
   0.01  08-Sep-2009  Nacho Cabanes
                      Versin inicial: muestra una imagen
   0.02  07-Oct-2009  Nacho Cabanes
                      Mueve el personaje hacia la derecha
                      hasta llegar al margen
   0.03  13-Oct-2009  Nacho Cabanes
                      El personaje se mueve con flechas
                      Un primer enemigo que se mueve a la vez
 
 ---------------------------------------------------- */
 
public class Juego
{
 
    private static void Main()
    {
        // Variables que usaremos: una imagen y un tipo de letra
        ElemGrafico imagenPersonaje,imagenEnemigo;
        Fuente fuente18;
        short x = 100, xEnemigo = 50;
 
        // Inicializo modo grafico 800x600 puntos, 24 bits de color
        Hardware.Inicializar(800, 600, 24);
 
        // Cargo imagenes y tipos de letra
        imagenPersonaje = new ElemGrafico("imagenes/personaje.png");
        imagenEnemigo = new ElemGrafico("imagenes/escorpion.png");
        fuente18 = new Fuente("FreeSansBold.ttf", 18);
 
        // Y espero a que se pulse ESC
        do {
 
          // Dibujo el personaje, el enemigo y un texto en la pantalla oculta
          imagenPersonaje.MoverA( x ,300);
          imagenPersonaje.DibujarOculta();
 
          imagenEnemigo.MoverA( xEnemigo ,100);
          imagenEnemigo.DibujarOculta();
 
          Hardware.EscribirTextoOculta(
                "Pulsa ESC para salir",
                300, 500, 0xAA, 0xAA, 0xAA, fuente18);
 
          // Finalmente, muestro en pantalla
          Hardware.VisualizarOculta();        
 
          // Y lo muevo si se pulsa alguna flecha del teclado
          if (Hardware.TeclaPulsada(Hardware.TECLA_DER) )
            x+=4;
 
          if (Hardware.TeclaPulsada(Hardware.TECLA_IZQ) )
            x-=4;
 
          // Y muevo siempre al enemigo
          xEnemigo ++;
 
          Hardware.Pausa( 40 );
        } while (! Hardware.TeclaPulsada(Hardware.TECLA_ESC) );
 
    }
 
} /* fin de la clase Juego */
 

Siguiente entrega...