AndorWork!
Después de mucho tiempo sin trabajar en él, hoy he sacado un ratillo para dejar mínimamente usable este mini-framework para juegos 2D. Está basado en SDL, aunque cuando sea plenamente usable se trabajará completamente por encima de las SDL y librerías auxiliares (SDL_Mixer, SDL_Image, SDL_Gfx…).
Se trata de ofrecer un framework de algo más alto nivel, de modo que el usuario no haya de preocuparse por el formato de las texturas, ni de cómo crear o gestionar un mapa de tiles.
De momento hay solamente 6 clases:
AndorWork: La clase principal, contiene rutinas de dibujado, colisiones simples(surface-punto, surface-surface), control de eventos del ratón, y rutinas típicas de ventana.
Font: Clase que contiene una fuente bitmap. No comento más porque he de rehacerla.
GUI_Button: Crea un botón a partir de 3 imágenes (normal, ratón encima y pulsado) y permite situarlo y dibujarlo.
Surface: La clase más importante, ya que todos los gráficos son surfaces (superficies). Una surface puede ser posicionada y rotada (en breve también escalada).
TileMap: La última clase que he añadido. A partir de un archivo gráfico crea un tileset para poder crear mapas. Hemos de pasarle el tamaño que tendrán los tiles, teniendo que ser todos de igual tamaño. Después con la función LoadMap podemos cargar un mapa a partir de un archivo (de momento de texto).
vector2: Por comodidad he añadido esta clase. Se trata de un vector de dos dimensiones, ideal para guardar posiciones.
La idea de hacer esto surgió después de acabar el BallClicks, ya que nos costó más de la cuenta por no tener una serie de rutinas básicas. De este modo tenemos muchas más facilidades a la hora de desarrollar un juego, con el ahorro de tiempo y líneas de código que conlleva.
En la imagen se muestra un logo con transparencia, una nave dibujada por debajo de éste y un botón para salir. El framework por cierto ocupa 28kb de momento (aunque hay que añadir las demás DLL necesarias de las SDL).
Esperemos que no se quede en un proyecto más de los típicos que no se acaban nunca. Si el tiempo no lo impide, pretendo seguir ampliando el framework con nuevas clases y funciones. Por ejemplo me gustaría hacer una clase para manejar sistemas de partículas, mejorar las fuentes bitmap, añadir sonido y música y más adelante posibilidades para juego en red. Ya veremos lo que depara el futuro ;).

