1- enfoque
En realidad hay varias maneras sencillas (pero muy limitadas) de ordenar los tiles/sprites para ser mostrados en el orden correcto. Por Internet se pueden encontrar multitud de "mapeos" para ello.
Desde mi punto de vista el método más sensato para "mapear" todo el conjunto de tiles/sprites es como se muestra en la imagen siguiente:
Desde mi punto de vista el método más sensato para "mapear" todo el conjunto de tiles/sprites es como se muestra en la imagen siguiente:
de manera que en cada elemento del array "mapa[<fila>][<columna<]" figuren todos los datos (u objeto) que deseamos dibujar allí (entre esos datos están: image or type, etc...).
El recorrido de dibujo iría entonces "de fondo hacia adelante y de derecha a izquierda" a través de bucles de iteracción simples.
De esta manera conseguimos representar de forma isométrica perfectamente la escena.
Entonces.... Ya está???
Ni mucho menos!!!.
"Cuando todos los tiles/sprites están exactamente "dentro de las dimensiones/posición" de una celda, es decir, "cuando no interseccionan en el espacio (X,Z) con más de una celda a la vez" este sistema funciona perfectamente!!!. Si lo que pretendemos es realizar un juego o proyecto en donde esto ocurre; entonces "ya tenemos algoritmo".
Ejemplo: Supongamos un ajedrez donde las fichas se mueven de celda en celda (independientemente de su elevación Y) sin hacer transicción entre celdas, es decir, pasa de una celda a otra "de golpe".
El recorrido de dibujo iría entonces "de fondo hacia adelante y de derecha a izquierda" a través de bucles de iteracción simples.
De esta manera conseguimos representar de forma isométrica perfectamente la escena.
Entonces.... Ya está???
Ni mucho menos!!!.
"Cuando todos los tiles/sprites están exactamente "dentro de las dimensiones/posición" de una celda, es decir, "cuando no interseccionan en el espacio (X,Z) con más de una celda a la vez" este sistema funciona perfectamente!!!. Si lo que pretendemos es realizar un juego o proyecto en donde esto ocurre; entonces "ya tenemos algoritmo".
Ejemplo: Supongamos un ajedrez donde las fichas se mueven de celda en celda (independientemente de su elevación Y) sin hacer transicción entre celdas, es decir, pasa de una celda a otra "de golpe".
El algoritmo funcionaría.
Pero... y si necesitamos que la 'figura' transiccione entre dos (o más) celdas durante el movimiento?
Pero... y si necesitamos que la 'figura' transiccione entre dos (o más) celdas durante el movimiento?
Tenemos un problema!!!! En qué momento la dibujamos? Cuando estemos situados sobre la casilla ROSA o cuando sobra la casilla ROJA?
Algún "listillo" habrá dicho... pues es obvio!! cuando la casilla ROJA!!.
Y tiene razón!!!
Pero hay un problema: Si la dibujamos cuando la ROJA caeremos en el error (que ahora no podremos visualizar) de que lo que hayamos pintado en la VERDE quedará afectado.
Algún "listillo" habrá dicho... pues es obvio!! cuando la casilla ROJA!!.
Y tiene razón!!!
Pero hay un problema: Si la dibujamos cuando la ROJA caeremos en el error (que ahora no podremos visualizar) de que lo que hayamos pintado en la VERDE quedará afectado.