J'ai un moteur physique simple qui résout les collisions en corrigeant simplement la position des corps qui se chevauchent (juste des cercles pour l'instant) directement, au lieu de simplement changer la vitesse ou d'appliquer une impulsion. La vitesse n'est modifiée qu'après que les impacts sont déjà résolus ou pendant la partie d'intégration.
J'ai eu le problème que dans les tas d'objets, les objets du haut appliquent trop de pression (cela existe implicitement, il n'y a pas de modélisation de la pression dans l'algorithme) sur les objets au bas du tas, ce qui les fait passer à travers les étages, etc.
Je voulais résoudre ce problème en triant les objets par leur coordonnée y, afin que les collisions soient résolues de bas en haut. Mais maintenant, le moteur affiche un comportement de pop-up étrange pour les objets qui devraient en fait être au repos (voir gif)
Sans simplement vous donner le code source - qu'est-ce que cela pourrait être?