Death Pit Remake
Un remake parcial de un juego... paso a paso
01.- Esqueleto vacío
En este apartado puedes encontrar:
- Algunas ideas sobre el esqueleto del juego
- Primeras órdenes empleadas
- Compiladores y otras herramientas necesarias
- Fuente del fichero "Juego.cs" para esta primera entrega
- Apariencia de esta primera versión
Algunas ideas sobre el esqueleto del juego
Para no necesitar conocer demasiado los detalles internos de SDL y de su adaptación como parte del "Tao Framework", el esqueleto incluye varias clases auxiliares, como:
- El "Hardware", para poder mostrar cosas en pantalla y leer de teclado.
- Un "Elemento Gráfico", que representa a una imagen en el juego (o incluso a un personaje que está representado por una secuencia de imágenes).
- Una "Fuente" (un tipo de letra), que nos permitirá escribir textos en pantalla.
Para evitar parpadeos, las imágenes y los textos se dibujan en una pantalla oculta (un "doble buffer"), que se muestra cuando todos los elementos están preparados.
Primeras órdenes empleadas
Algunas de las órdenes básicas existentes en esas tres clases, y que usaremos en este priemr acercamiento:
- Un Elemento Gráfico se declara (ElemGrafico imagenPersonaje;), se carga de disco con "new" (imagenPersonaje = new ElemGrafico( "imagenes/personaje.png" );), se coloca en cualquier posición con MoverA (imagenPersonaje. MoverA( 380, 300);) y se dibuja en la pantalla oculta (imagenPersonaje. DibujarOculta();).
- Una Fuente (tipo de letra) también se declara (Fuente fuente18;), se carga de disco con "new" (fuente18 = new Fuente("FreeSansBold.ttf", 18);), y el texto se esrcribe en pantalla oculta en ciertas coordenadas (por ejemplo 300,500) y con cierto color, expresado como componentes RBG -Rojo, Verde, Azul- (Hardware. EscribirTextoOculta( "Pulsa ESC para salir", 300, 500, 0xAA, 0xAA, 0xAA, fuente18);) .
- El modo gráfico se inicializa con "Hardware. Inicializar(800, 600, 24);", la pantalla oculta se puede visualizar cuando esté totalmente preparada, usando "Hardware. VisualizarOculta();", y se puede comprobar si una cierta tecla está pulsada, haciendo cosas como "if ( Hardware.TeclaPulsada(Hardware.TECLA_ESC) ) ..."
Compiladores y otras herramientas necesarias
Para no necesitar usar Visual Studio, que es de gran tamaño y relativamente lento (incluso en su versión Express), se puede emplear como compilador Mono, que se puede descargar libremente de www.mono-project.com.
En un fuente sencillo, para compilar con Mono bastaría teclear "mcs fuente.cs"; como en este caso se trata de varios fuentes, de un fichero DLL, etc., se puede usar el fichero COMPILA.BAT. Si no hay problemas en la compilación, se puede usar EJECUTA.BAT para copiar el ejectuable a su carpeta y lanzarlo.
El resto de ficheros necesarios (DLL, tipos de letra, imágenes) se encuentran formando parte del fichero ZIP que contiene todo lo necesario para compilar y probar el juego. Lo correspondiente a esta primera entrega lo puedes encontrar aquí.
Fuente del fichero "Juego.cs" para esta primera entrega
/** * 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 xx-Oct-2009 Nacho Cabanes Versión inicial: muestra una imagen ---------------------------------------------------- */ public class Juego { private static void Main() { // Variables que usaremos: una imagen y un tipo de letra ElemGrafico imagenPersonaje; Fuente fuente18; // 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"); fuente18 = new Fuente("FreeSansBold.ttf", 18); // Dibujo el personaje y un texto en la pantalla oculta imagenPersonaje.MoverA(380,300); imagenPersonaje.DibujarOculta(); Hardware.EscribirTextoOculta( "Pulsa ESC para salir", 300, 500, 0xAA, 0xAA, 0xAA, fuente18); // Finalmente, muestro en pantalla Hardware.VisualizarOculta(); // Y espero a que se pulse ESC do { // No hacer nada, solo esperar } while (! Hardware.TeclaPulsada(Hardware.TECLA_ESC) ); } } /* fin de la clase Juego */
Apariencia de esta primera versión

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.
- 13.- Volver a empezar una partida.
- 14.- Rediseño usando objetos
- 15.- Tabla de records (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