He estado buscando una fórmula para trazar mosaicos isométricos (mundo-> pantalla) y selección del ratón (mundo-> pantalla) en un mundo con forma de diamante. Las que he probado siempre parecen estar, bueno, apagadas. ¿Cuál es la forma habitual / correcta de hacer esto?
23
Respuestas:
Según su comentario, aquí está el código que estoy usando para convertir los valores de mosaico x, y en coordenadas de pantalla. Ahora, no tiene en cuenta las "fichas 3D", todo se considera que está en el mismo plano, por lo que si está escribiendo un juego donde eso importa, este código no funcionará.
El punto es simplemente una estructura que contiene entradas x e y, TILE_WIDTH sería 64 en su caso, TILE_DEPTH está mal nombrado (en realidad es la altura de los gráficos de mosaico), pero sería 32 en su caso. Los desplazamientos son si desea que su mapa de mosaicos "comience" en una ubicación x, y diferente (como si desea que los mosaicos estén por encima de otro conjunto de mosaicos). Típicamente el desplazamiento puede ser 0,0.
Esto generará un mapa con 0,0 en la parte superior, en el medio, así:
En cuanto a encontrar el mosaico x, y del cursor:
En este fragmento de código, mX y mY son las coordenadas de la pantalla del mouse, que estamos combinando con los valores de la cámara para averiguar dónde estamos en las "coordenadas mundiales". Todo lo demás es igual que el ejemplo de código anterior.
Una vez más, esto supone un plano plano de mosaico isométrico 2D. Hay algún trabajo adicional si desea utilizar una vista semi-3d del mapa, y todo esto supone que está trabajando en 2d de todos modos.
fuente