Estoy tratando de implementar un sistema de colisión en un juego 2D que estoy haciendo. El teorema del eje de separación (como se describe en el tutorial de colisión de metanet ) parece una forma eficiente y robusta de manejar la detección de colisión, pero no me gusta el método de respuesta de colisión que utilizan. Al desplazarse ciegamente a lo largo del eje de menor superposición, el algoritmo simplemente ignora la posición anterior del objeto en movimiento, lo que significa que no choca con el objeto estacionario tanto como entra y luego rebota.
Aquí hay un ejemplo de una situación en la que esto sería importante:
De acuerdo con el método SAT descrito anteriormente, el rectángulo simplemente saldría del triángulo perpendicular a su hipotenusa:
Sin embargo, de manera realista, el rectángulo debe detenerse en la esquina inferior derecha del triángulo, ya que ese sería el punto de la primera colisión si se moviera continuamente a lo largo de su vector de desplazamiento:
Ahora, esto podría no importar realmente durante el juego, pero me encantaría saber si hay una manera de lograr de manera eficiente y generalmente desplazamientos precisos de esta manera. ¡Me he estado estrujando el cerebro durante los últimos días, y aún no quiero rendirme!
(Publicación cruzada de StackOverflow, ¡espero que eso no esté en contra de las reglas!)