Ich habe eine einfache Physik-Engine, die Kollisionen löst, indem sie einfach die Position überlappender Körper (vorerst nur Kreise) direkt korrigiert, anstatt nur die Geschwindigkeit zu ändern oder einen Impuls anzuwenden. Die Geschwindigkeit wird erst geändert, nachdem die Auswirkungen bereits behoben sind, oder während des Integrationsteils.
Ich hatte das Problem, dass in Haufen von Objekten die oberen Objekte zu viel Druck auf die Objekte am unteren Rand des Haufens ausüben (dies existiert implizit, es gibt keine Druckmodellierung im Algorithmus), was dazu führt, dass sie durch den Boden geschoben werden. etc.
Ich wollte dies beheben, indem ich die Objekte nach ihrer y-Koordinate sortierte, damit die Kollisionen von unten nach oben aufgelöst werden. Aber jetzt zeigt die Engine ein seltsames Knallverhalten für Objekte, die eigentlich in Ruhe sein sollten (siehe gif).
Ohne nur den Quellcode anzugeben - was könnte das sein?