Ich versuche, ein Kollisionssystem in einem 2D-Spiel zu implementieren, das ich mache. Der Satz der Trennachse (wie im Kollisions-Tutorial von Metanet beschrieben ) scheint eine effiziente und robuste Methode für die Kollisionserkennung zu sein, aber ich mag die von ihnen verwendete Kollisionsreaktionsmethode nicht ganz. Durch blindes Verschieben entlang der Achse mit der geringsten Überlappung ignoriert der Algorithmus einfach die vorherige Position des sich bewegenden Objekts, was bedeutet, dass es nicht so sehr mit dem stationären Objekt kollidiert, wie es in dieses eindringt und dann abprallt.
Hier ist ein Beispiel für eine Situation, in der dies eine Rolle spielen würde:
Nach der oben beschriebenen SAT-Methode würde das Rechteck einfach senkrecht zu seiner Hypotenuse aus dem Dreieck herausspringen:
Realistisch sollte das Rechteck jedoch an der unteren rechten Ecke des Dreiecks anhalten, da dies der Punkt der ersten Kollision wäre, wenn es sich kontinuierlich entlang seines Verschiebungsvektors bewegen würde:
Nun, das ist vielleicht nicht wirklich wichtig während des Spiels, aber ich würde gerne wissen, ob es einen Weg gibt, auf diese Weise effizient und im Allgemeinen genaue Verschiebungen zu erzielen. Ich habe mir in den letzten Tagen den Kopf zerbrochen und möchte noch nicht aufgeben!
(Cross-posted von StackOverflow, hoffe das verstößt nicht gegen die Regeln!)