Ya he aprendido otra cosa :D

por Áureo Ares

Paige: Creando el escenario.

enero 19th, 2011

Todo juego necesita un escenario, por simple que sea. Como era de esperar, voy a utilizar escenarios en 2D.

En principio he pensado en un escenario compuesto por una imagen de fondo y un mapa de tres capas basado en tiles. ¿Por qué tres capas? Pues porque las usaré para representar lo que está por detrás de los personajes, lo que está al mismo nivel y lo que está por delante. Combinado con un fondo creo que se pueden crear mapas decentes para casi cualquier tipo de juego.

En realidad voy a utilizar una cuarta capa para las colisiones con el escenario, que no se dibujará en pantalla ya que servirá para saber por qué partes del escenario no se pueden mover los personajes. Al principio pensé en considerar que el personaje colisionaría con todo lo que estuviese en la capa intermedia (supuestamente a su mismo nivel), pero creo que va a ser útil tenerlo por separado.

Existen bastantes herramientas para generar mapas basados en tiles, como Tile Mapper, Mappy o Tiled. Como no voy a meterme en mapas muy complejos y Tiled me ha gustado bastante, me quedo con él. En su wiki se explica el formato que utiliza y en Razón Artificial hay un buen ejemplo de cómo usarlo, entre otros artículos y tutoriales muy interesantes.

En cuanto al código, ya he subido la primera versión de las clases que gestionarán los mapas. Al proyecto le he llamado Paige y cualquiera queda invitado a colaborar.

Comento brevemente su estructura:

  • La clase Map es la que se encarga de cargar los mapas y dibujar en pantalla el fondo y las distintas capas.
  • La clase Tileset carga las imágenes de los tileset y las “trocea” para obtener la tabla de tiles individuales, además de dibujar tiles en la pantalla.
  • La clase Layer carga las capas del mapa y las dibuja en pantalla.

También he subido unas imágenes y un mapa de prueba para ir viendo los resultados. De momento el mapa debe ser del mismo tamaño que la pantalla, más adelante trataré el tema del “scrolling”. El siguiente paso será el personaje.