Mapas isométricos en Flash
Este documento indica de que como debe implementarse un motor de mapas isométricos haciendo uso de primitivas 2d. El lenguaje de programación utilizado en los ejemplos de implementación es ActionScript 2.0.
Los mapas isométricos fueron utilizados clásicamente para emular un entorno tridimensional haciendo uso de primitivas 2d. Se caracterizan por emplear una proyección ortogonal, es decir que los elementos más lejanos - a diferencia de la proyección en perspectiva - poseen el mismo tamaño que los elementos más cercanos (algo muy bueno para los sprites, ya que los mismos no requieren ser reescalados).
Sistemas de coordenadas
Para comprender este documento es necesario entender que existen diversos sistemas de coordenadas en un sistema de mapas isométricos.
Clásicamente en un juego que posea algún tipo de scroll existen dos tipos de coordenadas:
Coordenadas de mundo: Indican en que posición del mundo se encuentra un objeto determinado. Son relativas a un origen arbitario de mundo.
Coordenadas de pantalla: Indican en que posición de la pantalla debe dibujarse un objeto. Son relativas al origen de la pantalla (en Flash, el extremo superior izquierdo).

Figura 1. El viewport dentro del mundo.
En un juego sin scroll el mundo entero cabe dentro de la pantalla y usualmente no es necesario realizar este tipo de conversión. En cambio, en un juego sidescroller el mundo es más grande que la pantalla y debe existir un viewport, que es la porción de ventana que se ve del mundo.
En un sistema de mapas isométricos todos los objetos que forman parte del mapa poseen una posición en el mundo definida por un vector de tres dimensiones. Por lo tanto, aquà nace un nuevo sistema de coordenadas que llamaremos “Coordenadas de mundo isométrico”.

Figura 2. El mapa isométrico y su sistema de coordenadas.
Para que quede bien diferenciado los dos tipos de coordenadas de mundo que emplearemos, a la primer no la llamaremos solamente “coordenadas de mundo” sino “coordenadas de mundo plano”.
También dentro de este documento existe otra notación más que tiene que ver con el manejo del mapa. Es muy cómodo, y también necesario, referirnos a la ubicación de un objeto determinado dentro de un mapa por la fila y la columna que ocupa.
Entonces, repasemos los sistemas de coordenadas que emplearemos:
-
Coordenadas de pantalla (x, y)
-
Coordenadas de mundo plano (x, y)
-
Coordenadas de mundo isométrico (x, y, z)
-
Coordenadas de mapa isométrico (row, col)
El motor proveerá métodos para pasar de un sistema a otro ¿Para qué? Supongamos que el jugador debe poder seleccionar un bloque del mapa mediante el mouse. Fácilmente podremos conocer la posición X e Y en coordenadas de pantalla donde se ha realizado el click, pero ¿En qué bloque del mapa se encuentra? Es aquà donde deberemos convertir de coordenadas de pantalla a coordenadas de mapa.



