Por Nacho Cabanes
Mostrar la pantalla de presentación hasta que se pulse la tecla de ESPACIO. Cuando se pulse esa tecla, deberá entrarse al juego propiamente dicho. El personaje deberá poder moverse también hacia arriba y hacia abajo. Deberá haber dos enemigos: ambos tendrán la imagen del escorpión, pero uno se moverá a derecha a izquierda, "rebotando" cada vez que llegue a un extremo de la pantalla, y el otro deberá perseguir al personaje.
En este caso, la apariencia de esta versión nos muestra un fallo, que corregiremos en la siguiente entrega: cuando la imagen del personaje o la del enemigo se mueven arriba o abajo, dejan "rastro", porque la imagen llega exactamente hasta el límite de su recuadro, y no estamos borrando la pantalla entre un "fotograma" y otro:
Podría quedar así:
/** * Juego: Lógica 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 Versión 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 0.04 16-Oct-2009 Nacho Cabanes Primera pantalla de presentacion El primer enemigo rebota en los lados Un segundo enemigo nos persigue ---------------------------------------------------- */ public class Juego { private static void Main() { // Variables que usaremos: una imagen y un tipo de letra ElemGrafico imagenPersonaje, imagenEnemigo, imagenEnemigo2, presentacion; Fuente fuente18; short x = 100, xEnemigo = 50, xEnemigo2 = 50; short y = 300, yEnemigo2 = 200; short incremento = 1; int min = 0, max = 730; // 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"); imagenEnemigo2 = new ElemGrafico("imagenes/escorpion.png"); fuente18 = new Fuente("FreeSansBold.ttf", 18); presentacion = new ElemGrafico("imagenes/present.png"); //dibujo la presentacion presentacion.DibujarOculta(); // Finalmente, muestro en pantalla Hardware.VisualizarOculta(); //hasta que se pulse espacio do { } while (! Hardware.TeclaPulsada(Hardware.TECLA_ESP) ); //borro la presentacion Hardware.BorrarPantallaOculta(0,0,0); // Y espero a que se pulse ESC do { // Dibujo el personaje, el enemigo y un texto en la pantalla oculta imagenPersonaje.MoverA( x ,y); imagenPersonaje.DibujarOculta(); imagenEnemigo.MoverA( xEnemigo ,100); imagenEnemigo.DibujarOculta(); imagenEnemigo2.MoverA( xEnemigo2 ,yEnemigo2); imagenEnemigo2.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_ARR) ) y-=4; if (Hardware.TeclaPulsada(Hardware.TECLA_IZQ) ) x-=4; if (Hardware.TeclaPulsada(Hardware.TECLA_ABA) ) y+=4; // Y muevo siempre al enemigo xEnemigo +=incremento; // El primero rebota en los lados if ( (xEnemigo >= max) || (xEnemigo <= min) ) incremento = (short) -incremento; // y el segundo me persigue if (x > xEnemigo2 ) xEnemigo2 ++; if (x < xEnemigo2 ) xEnemigo2 --; if( y > yEnemigo2 ) yEnemigo2 ++; if ( y < yEnemigo2 ) yEnemigo2 --; // Pausa para 25 fps Hardware.Pausa( 40 ); } while (! Hardware.TeclaPulsada(Hardware.TECLA_ESC) ); } } /* fin de la clase Juego */Siguiente entrega...