Estoy intentando diseñar un algoritmo de detección de colisiones para un cliente personalizado de Minecraft que estoy creando. Básicamente, todo el mundo está formado por cubos, y el jugador (o cámara) debe poder pararse y moverse contra estos cubos. El resultado que quiero se ilustra en esta imagen: Detección de colisiones deslizando contra un plano en XNA
La línea verde es el vector de movimiento del jugador. Cuando el jugador está cepillando contra un plano de uno de los cubos, quiero que el vector cambie a uno que sea perpendicular al plano. El vector debería, sin embargo, mantener toda su velocidad en la dirección del avión, pero perder toda la velocidad hacia el plano.
Espero haber aclarado mi pregunta. ¿Cuál es la mejor y más eficiente forma de implementar un sistema de detección de colisión como este? Además, ¿un sistema como este permitirá un simple componente de gravedad?
EDITAR: Olvidé mencionar que los cubos se almacenan en una matriz tridimensional, [x, y, z].
Me encanta esta pregunta. Sugiero que también publiques en gamedev.stackexchange.com. Me imagino que este es un problema común en el desarrollo de juegos. –
@BigDave - Oh, no sabía que había un sitio específicamente para el desarrollo de juegos. Stack Exchange realmente está creciendo. – Bevin