¿Cómo puedo definir un área de colisión compleja en la parte superior de un mapa de mosaico?

13

Como muchas personas recomendaron, estoy usando el editor de mapas de Tiled para crear un mapa para mi juego y es genial particularmente porque libgdx framework también proporciona API para mapas de Tiled.

Entiendo que puedo definir mosaicos colisionables o no en el editor de mapas para poder lidiar con cualquier colisión en mi código. Pero actualmente estoy en una situación en la que necesito dividir un mosaico en áreas colisionables y no colisionables. Manualmente, creo que puedo definir puntos y líneas de límites de las dos áreas y tratarlo programáticamente. Pero eso es mucho trabajo que lleva mucho tiempo.

Así que busqué mucho en Google y encontré este editor de cuerpo físico. Esto parece una gran herramienta para automatizar el proceso que mencioné anteriormente. Sin embargo, el sistema funciona con cada una de las imágenes desempaquetadas y no estoy seguro de que funcionará incluso si descomprimo la imagen para su funcionamiento.

Me pregunto si hay una mejor manera de hacer todo este proceso de definición del área de colisión. Cualquier sugerencia será muy apreciada.

Tae-Sung Shin
fuente

Respuestas:

22

Como de costumbre, solo arrojaré algunas ideas a la mesa. Ciertamente, hay varias formas de abordar este problema. Describiré los tres que logré recordar, y depende de usted decidir cuál (si alguno) de estos enfoques es bueno para su proyecto.

Idea 1: patrones repetibles en tus fichas

¿Su sistema necesita ser lo suficientemente flexible como para soportar cualquier área de colisión concebible, o puede dividirlo en un conjunto finito de formas de baldosas con las que pueda construir y tratarlas como casos especiales? Aquí hay un par de recursos para leer sobre esta idea:

Idea 2: ignorar el mosaico

Sí, ignore completamente el mapa de mosaico y almacene una representación poligonal diferente de su área de colisión. Luego superponga esta geometría en la parte superior de su mapa basado en mosaicos y maneje las colisiones con él. Si no necesita ninguna física, consulte el siguiente recurso:

De lo contrario, creo que probablemente podría usar la herramienta a la que se vinculó.

Idea 3: detección de colisión perfecta de píxeles

Use colisiones perfectas de píxeles y use una máscara separada o solo el canal alfa en sus mosaicos para codificar sus áreas de colisión variables. Para inspirarse, consulte la siguiente guía:

David Gouveia
fuente