Estou tentando implementar um sistema de colisão em um jogo 2D que estou criando. O teorema do eixo de separação (conforme descrito no tutorial de colisão da metanet ) parece ser uma maneira eficiente e robusta de lidar com a detecção de colisões, mas não gosto muito do método de resposta a colisões que eles usam. Ao deslocar-se cegamente ao longo do eixo de menor sobreposição, o algoritmo simplesmente ignora a posição anterior do objeto em movimento, o que significa que ele não colide tanto com o objeto estacionário quanto entra nele e depois salta.
Aqui está um exemplo de uma situação em que isso seria importante:
De acordo com o método SAT descrito acima, o retângulo simplesmente sairia do triângulo perpendicular à sua hipotenusa:
No entanto, realisticamente, o retângulo deve parar no canto inferior direito do triângulo, pois esse seria o ponto da primeira colisão se estivesse se movendo continuamente ao longo do seu vetor de deslocamento:
Agora, isso pode não ser realmente importante durante o jogo, mas eu adoraria saber se existe uma maneira de obter, de maneira eficiente e geral, deslocamentos precisos dessa maneira. Tenho estourado meu cérebro nos últimos dias e não quero desistir ainda!
(Publicada na StackOverflow, espero que isso não seja contra as regras!)