J'essaie d'implémenter un système de collision dans un jeu 2D que je fais. Le théorème de l'axe de séparation (tel que décrit par le didacticiel sur les collisions de metanet ) semble être un moyen efficace et robuste de gérer la détection des collisions, mais je n'aime pas vraiment la méthode de réponse aux collisions qu'ils utilisent. En se déplaçant aveuglément le long de l'axe du moindre chevauchement, l'algorithme ignore simplement la position précédente de l'objet en mouvement, ce qui signifie qu'il n'entre pas en collision avec l'objet stationnaire autant qu'il y entre et rebondit ensuite.
Voici un exemple de situation où cela aurait de l'importance:
Selon la méthode SAT décrite ci-dessus, le rectangle sortirait simplement du triangle perpendiculaire à son hypoténuse:
Cependant, de manière réaliste, le rectangle devrait s'arrêter dans le coin inférieur droit du triangle, car ce serait le point de première collision s'il se déplaçait continuellement le long de son vecteur de déplacement:
Maintenant, cela n'a peut-être pas vraiment d'importance pendant le jeu, mais j'aimerais savoir s'il existe un moyen d'atteindre efficacement et généralement des déplacements précis de cette manière. J'en ai creusé la tête ces derniers jours et je ne veux pas encore abandonner!
(Post-cross de StackOverflow, j'espère que ce n'est pas contraire aux règles!)