2012-01-23 9 views
5

Tengo una gran variedad de vóxeles, a la Minecraft. El jugador/los enemigos están en esta grilla. No tengo idea de cómo hacer este tipo de detección de colisión. Tenga en cuenta que este NO es un objeto móvil dinámico frente a un objeto móvil dinámico, este es un objeto móvil en comparación con la tierra/pared/techo estacionarios.Player to voxel colisión detección/respuesta

No tengo ningún problema con la detección, es la respuesta que no sé cómo hacer.

Con lo que tengo que trabajar: la posición del jugador, la velocidad y el cuadro delimitador, y un conjunto de voxels 1x1x1 que rodean al jugador.

+1

Usted podría tener un poco más de suerte preguntar en http: //gamedev.stackexchange. com/ – Holger

+0

¿Puedo copiar esto en una nueva pregunta? – khyperia

+0

@khyperia: lo he marcado para que lo migre un mod. –

Respuesta

6
  • calcular el producto escalar de la velocidad del jugador y la unitsurface normal del voxel chocar (apuntando hacia afuera).
  • Escale (multiplique) la superficie de la unidad normal en este valor.
  • Reste su resultado de la velocidad del jugador.

Esto le dará el "slide contra la pared" efecto de que la mayoría de los juegos emplean (sin cualquier trigonometría problemática)

+0

¿Qué hay de decir en qué dirección debe ir el jugador, IE, qué plano de superficie es el jugador que se cruza? La parte superior, el lado, ¿qué? – khyperia

+0

Si tiene problemas para determinarlo, le recomiendo que publique una nueva pregunta. Algunos pueden publicar una respuesta mejor que yo. –

+2

Simplemente una adición, si también tiene un multiplicador diferente, en la parte superior del producto de punto, por material en el vóxel, entonces ahora está modelando la fricción y puede tener bloques más resbaladizos o más ásperos. –