Es gibt drei Phasen der Kollisionserkennung.
Broadphase : Es wird eine Schleife zwischen allen Objekten ausgeführt, die interagieren können. False Positives sind zulässig, wenn dies die Schleife beschleunigen würde.
Schmale Phase : Bestimmt, ob sie kollidieren und manchmal, wie, keine Fehlalarme
Lösung : Behebt die Kollision.
Die Frage, die ich stelle, betrifft die Engephase. Es gibt mehrere Algorithmen, die sich in Komplexität und Genauigkeit unterscheiden.
Hitbox-Schnittpunkt : Dies ist ein a-posteriori-Algorithmus, der die geringste Komplexität aufweist, aber auch nicht zu genau ist.
Farbe Kreuzung : Hitbox Kreuzung für jedes Pixel, a-posteriori, pixelgenaue, nicht accuratee in Bezug auf Zeit, höhere Komplexität
Theorem der Trennachse : Dies wird häufiger verwendet, genau für Dreiecke, jedoch a-posteriori, da es die Kante nicht finden kann, wenn es das letzte Bild berücksichtigt, ist es stabiler
Lineares Raycasting : Der A-priori-Algorithmus, der für die semi-realistisch aussehende Physik nützlich ist, findet den Schnittpunkt noch genauer als SAT, jedoch komplexer
Spline-Interpolation : A-priori, noch genauer als lineare Strahlen, noch mehr Koplexität.
Es gibt wahrscheinlich noch viel mehr, die ich vergessen habe. Die Frage ist, wann es besser ist, SAT zu verwenden, wann Strahlen, wann Splines und ob es etwas Besseres gibt.
quelle
Dies hängt wirklich von der Art des Spiels ab, das Sie haben. Jede der oben genannten Methoden hat ihre eigenen Kompromisse.
Allerdings ist SAT meiner Erfahrung nach ein Standard für generische Physikbibliotheken, z. Box2D verwendet es ausgiebig (Angry Birds und viele andere Spiele verwenden Box2D).
Variationen von Farbschnittpunkten gemischt mit SAT- oder Hitbox-Schnittpunkten werden in Spielen wie Sonic, Megaman mit guten Ergebnissen verwendet.
Ich weiß allerdings nicht viel über # 4 und # 5.
quelle