18 de mayo de 2011

Mapas con persistencia

Estoy creando ya algunos mapas. Para el juego, he pensado en definir un mapa por habitación/zona en lugar de declarar un mapa gigantesco delimitado por zonas.

La ventaja de utilizar mapas reducidos frente a enormes matrices es que de esta forma me permite cargarlos rápidamente. La gestión de objetos y eventos la realizo por cada zona... hay muchas variables que se mantienen constantes por mucho que se cambie de mapa, como por ejemplo la luz global.

Lo más complicado es mantener una coherencia con el entorno. Una puerta que se abre en cierta zona, debe permanecer abierta hasta que se cierre, por mucho que cambiemos de habitación. Esto me obliga a almacenar el estado de un mapa cuando el jugador pasa a otra sala.

Finalmente lo he solventado almacenando en el disco un fichero backup.x por cada zona que se visita (x es el número que corresponde al mapa).

Cuando el jugador vuelve a un mapa que ya se ha visitado, recupero el fichero backup correspondiente, ya que contiene el estado de items/traps que anteriormente he guardado.

No hay comentarios: