Podría estar malinterpretando, pero parece que estás haciendo dos preguntas: 1. ¿Cuáles son algunas formas generales de lidiar con la resolución de colisiones? El término que estás buscando es 'simulación basada en impulsos', y hay un montón de documentos que puedo hacerlo mejor justicia que yo.
En resumen, desea acelerar su simulación física en el espacio de impulso, que es la masa por la velocidad (no haga las cosas basadas en la fuerza, su integrador no lo está haciendo bien de todos modos).
Para una respuesta angular, afortunadamente, los momentos de inercia mayores y menores siempre se pueden reducir a dos ejes ortogonales (en 2D), lo que significa que una matriz múltiple funcionará en general, y si los alinea con los ejes X e Y, se convierte en un vector 2D
Cuando tiene una colisión, calcula una respuesta basada en los momentos lineales y angulares en el punto de colisión, y un buen factor de fraude es, si tiene interpenetración, aplicar alguna fuerza de penalización (como se mencionó anteriormente) para separar los dos cuerpos.
Desde el punto en que terminará agregando más y más reglas para controlar el comportamiento aberrante, como limitar el momento angular máximo para que las cosas no giren como tops, etc., pero este es un buen comienzo.
Mantenlo simple si puedes.
- ¿Cómo se resuelven los problemas de colisión de varios cuerpos?
La única forma real de hacerlo es con un sistema de ecuaciones lineales y mucha resolución. La forma práctica de hacerlo es tener un sistema como el anterior y hacer que la física se resuelva naturalmente con el tiempo.
La mayoría de los juegos que hacen cosas como rodar, o pararse sobre superficies en movimiento, tienen un modelo híbrido donde sus pies están unidos a una superficie (o ruedas a la carretera) para acomodar el paso del tiempo físico (lo que resultaría en ciclos de respuesta de interpenetración y no funcionaría)
Espero que esto ayude. Si necesita ejemplos matemáticos, hágamelo saber.