Estoy tratando de aplanar matriz 3D en matriz 1D para el sistema "trozo" en mi juego. Es un juego de bloques en 3D y, básicamente, quiero que el sistema de fragmentos sea casi idéntico al sistema de Minecraft (sin embargo, esto no es un clon de Minecraft por ninguna medida). En mis anteriores 2D-juegos que he accedido a la gama aplanado con algoritmo siguiente:¿Cómo "aplanar" o "indexar" 3D-array en 1D array?
Tiles[x + y * WIDTH]
Sin embargo, esto obviamente no funciona con 3D, ya que le falta el eje Z. No tengo idea de cómo implementar este tipo de algoritmo en el espacio 3D. El ancho, la altura y la profundidad son todas constantes (y el ancho es tan grande como la altura).
¿Es solo x + y*WIDTH + Z*DEPTH
? Soy bastante malo con las matemáticas y recién comienzo la programación en 3D, así que estoy bastante perdido: |
PS. La razón de esto es que estoy haciendo bucles y obteniendo cosas por índice bastante. Sé que las matrices 1D son más rápidas que las matrices multidimensionales (por razones que no puedo recordar: P). Aunque esto puede no ser necesario, quiero el mejor rendimiento posible :)
Estoy en lo correcto al decir que desea una matriz 3D que se encaja en un arr 1D ¿sí? – DMan
¿Por qué no solo usa una matriz 3D? – svick
@DMan Sí, lo eres :) Siempre explico todo de la manera más dura y larga, así que no hay sorpresa que no entiendas: P – flai