Je travaille actuellement sur une couche d'abstraction 2D en physique qui peut utiliser Box2D ou Chipmunk2D comme moteur physique. J'ai d'abord utilisé Chipmunk2D et je suis en train de mettre en place Box2D. L'un des problèmes que j'ai rencontrés était la vitesse maximale de Box2D (telle que définie par b2_maxTranslation). Pour résoudre ce problème, j'ai décidé de redimensionner le monde afin qu'il corresponde mieux aux unités Box2D.Scaling Physics World
Actuellement, je suis mise à l'échelle vers le bas avec un facteur constant:
- positions (y compris les définitions de fixation du polygone et le rayon du cercle)
- forces (avant d'appeler b2Body :: ApplyForce)
- impulsions (avant d'appeler b2Body :: ApplyLinearImpulse)
Comme j'utilise des densités pour définir les appareils, cela réduirait également les masses corporelles.
Ce que j'ai remarqué est, cela ne fonctionne pas. Chaque fois que j'applique une force, le corps bouge beaucoup plus vite que lorsque la balance est haute.
Y at-il autre chose que je dois à l'échelle pour que les organismes sont mis à jour correctement ou devrais-je échelle les impulsions et les forces d'une autre manière?
Bien qu'une bonne suggestion, pas une réponse car elle ne dit pas comment mettre à l'échelle les valeurs. Je posterai une réponse séparée pour montrer comment j'ai fini par le faire. –