Death Pit Remake
Un remake parcial de un juego... paso a paso
03.- Personaje que se mueve con teclado. Enemigo simultáneo
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:

El resultado debería ser algo como:
/** * 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 ---------------------------------------------------- */ 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...
Acceso rápido
- 00.- Motivo
- 01.- Esqueleto vacío
- 02.- Un personaje que se mueve solo
- 03.- Personaje que se mueve con teclado. Enemigo simultáneo
- 04.- Presentación. Dos enemigos con distinto comportamiento
- 05.- Varios enemigos iguales
- 06.- Un fondo formado por "casillas" repetitivas (tiles)
- 07.- El personaje se mueve por el laberinto
- 08.- Un fuente más modular
- 09.- Varias pantallas conectadas
- 10.- Un enemigo que se mueve por el laberinto
- 11.- Varias vidas
- 12.- Distintas imágenes según la dirección. Matar enemigos y obtener puntos. (Aún no)
- 13.- Volver a empezar una partida. (Aún no)
- 14.- Tabla de records (Aún no)
- 15.- Rediseño usando objetos (Aún no)
- 16.- Varios tipos de enemigos (Aún no)
- 17.- Leyendo el mapa desde fichero (Aún no)
- 18.- Gastar aire y "energía" (Aún no)
- 19.- Recoger "premios" (Aún no)
- Orig.- Algunos datos sobre el juego original