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

Apariencia de la version 0.01 Siguiente entrega...