Potrei essere frainteso, ma sembra che tu stia ponendo due domande: 1. quali sono alcuni modi generali di gestire la risoluzione delle collisioni il termine che stai cercando è "simulazione basata sugli impulsi", e ci sono un sacco di documenti che posso renderlo più giustizia di me.
In breve, vuoi fare un passo avanti nella simulazione fisica nello spazio del momento, che è la velocità dei tempi di massa (non fare cose basate sulla forza, il tuo integratore non lo sta facendo comunque).
Per la risposta angolare, fortunatamente i momenti di inerzia più grandi e minimi possono sempre essere ridotti a due assi ortogonali (in 2D), il che significa che una moltiplicazione della matrice funzionerà in generale, e se li allineate con gli assi X e Y, si trasforma in un vettore 2D.
Quando hai una collisione, capisci la risposta in base ai momenti lineari e angolari nel punto di collisione, e un buon fattore di scostamento è, se hai una compenetrazione, applicare una forza di penalità (come menzionato sopra) per separare i due corpi.
Dal punto in cui finirai per aggiungere sempre più regole per controllare il comportamento aberrante, come limitare il momento angolare massimo in modo che le cose non girino come cime, ecc., Ma questo è un buon inizio.
Mantienilo semplice se puoi.
- Come risolvere i problemi di collisione multi-corpo
L'unico vero modo per farlo è con un sistema di equazioni lineari e molta risoluzione. Il modo pratico per farlo è avere un sistema come quello sopra e far sì che la fisica si risolva naturalmente nel tempo.
La maggior parte dei giochi che fanno cose come rotolare o in piedi su superfici in movimento, hanno un modello ibrido in cui i tuoi piedi sono attaccati a una superficie (o ruote alla strada) per adattarsi al passo del tempo fisico (che comporterebbe cicli di compenetrazione-risposta e non funzionerebbe).
Spero che sia di aiuto. Se hai bisogno di esempi di matematica, fammi sapere.