¿Cómo se manejan los mosaicos desiguales al representar un mapa de mosaicos?

13

ingrese la descripción de la imagen aquí

Esto es lo que quiero hacer con mi mapa de mosaico del que no estoy seguro. Como puede ver, las paredes superiores son mucho más grandes que las inferiores y laterales (esto también es un problema con mis esquinas, que son formas extrañas [más como una L que un cuadrado], así como más grandes que los 40x40px que son mis fichas actuales )

ingrese la descripción de la imagen aquí

También he adjuntado la hoja de mosaico que estoy usando para los mosaicos para mostrarle cómo se ven las esquinas y las partes superiores en comparación con el resto de los mosaicos.

Lo que estoy pensando es que podría dibujarlos usando la misma matriz que tengo si uso el ancho y la altura de los mosaicos en lugar de un conjunto de ancho x alto. No sé qué tan bien funcionará esto, pero si los bloques que tendrán valores diferentes serán bloques que el jugador / NPC no puede pisar, entonces puede que no sea un problema, de nuevo, ni siquiera estoy seguro de si eso es viable solución.

Mi código en caso de que quiera ver cómo lo estoy manejando actualmente: Map.java (pastebin) (editar: no lo manejo, significa cómo estoy haciendo el mapa actualmente)

tl; dr: ¿cómo puedo tomar mi mapa de mosaicos en 2d y cambiarlo para tener mosaicos de diferentes tamaños? ¿O hay una mejor manera de hacer lo que estoy tratando de hacer? ¿Hay un nombre de un método que debería buscar mientras busco en Google?

Latencia
fuente

Respuestas:

19

Hay dos formas estándar de hacer esto.

  • Divide tus tamaños de mosaico no estándar en tamaños de mosaico estándar. De modo que esas tiras de paredes se convierten en una "pila" de mosaicos cuadrados que solo debes colocar juntos en tu editor de niveles. Juegos como los primeros juegos de Final Fantasy funcionaron de esta manera.
  • Deje que cualquier pieza de mosaico sea más alta que su altura de mosaico estándar. Alinee los mosaicos con la parte inferior de su rectángulo de mosaico, permitiendo que cualquier extra extra dibuje más alto que la altura de mosaico habitual. Al dibujar su mapa, dibuja mosaicos comenzando desde la parte posterior (los cuadrados de mosaico más arriba en la pantalla) y terminando con los mosaicos inferiores (los que se encuentran en la parte inferior de la pantalla). Esto garantiza que los mosaicos altos en primer plano se superpongan correctamente sobre los mosaicos en el fondo. Tenga en cuenta que en este enfoque, sus mosaicos todavía están limitados a un mosaico único de ancho.

Puede hacer uno o ambos de estos enfoques. Incluso los juegos que hacen el enfoque de "dividir en pilas de fichas" a menudo permitirán que algunos objetos (árboles, etc.) rompan los límites de altura de las fichas, y solo impondrán un orden de dibujo de mapa de arriba a abajo para asegurarse de que todo se superponga correctamente.

Trevor Powell
fuente
2
+1 para el segundo enfoque. Básicamente eso te mueve del mapa de mosaico a los objetos en el mapa.
Kromster dice apoyo Monica
Perfecto, muchas gracias, pensé que podría ser algo similar a la segunda opción, pero quería asegurarme de que lo estaba haciendo de manera estandarizada. = D
Latencia
2

Corta y corta en dados tus fichas de tamaño impar para que se ajusten a las dimensiones estándar. El objetivo de un mapa de mosaico es que obtienes mucha velocidad y utilidad al cambiar el tamaño de todo.

Patrick Hughes
fuente