Question

J'utilise Box2D (la version AS3 / Flash, si cela compte) et j'essaie de calculer le poids que chaque corps porte.

Je sais comment parcourir tous les corps et savoir comment interroger les routines de détection de collion, mais il semble que les forces de collision disparaissent à zéro une fois le poids appliqué. Existe-t-il une sorte de "force statique totale"? la propriété que je surplombe?

Était-ce utile?

La solution

En utilisant le type contactResult dans l'objet facultatif contactListener, vous pouvez interroger le comportement normalForce de chaque élément afin de déterminer les forces (qui incluent intrinsèquement le poids) qui sont appliquées aux objets.

Notez que les corps en sommeil (une pile au repos, par exemple) ne déclencheront pas contactResults, mais cela devrait fonctionner correctement si vous désactivez le mode veille ou si vous souhaitez mesurer les forces uniquement lorsqu'un mouvement est en cours.

Pour plus d'informations sur la manière d'implémenter la classe contactListener, consultez la documentation.

Autres conseils

Cela fait longtemps que je ne joue pas avec Box2D, mais avez-vous déjà essayé d'interroger GetReactionForce () sur les choses qui vous intéressent?

Je sais que lorsque j'ai fait une simulation de pont et que je voulais que le pont se brise, j'ai interrogé GetReactionForce () et s’il dépassait un certain seuil, je supprimais la liaison reliant les deux corps.

Je pense que tout ce que vous avez à faire est de parcourir vos instances de b2Body et d'utiliser le Méthode GetMass ().

Je ne suis pas sûr de comprendre ce que vous entendez par "force statique totale".

En ce qui concerne le poids / la masse, je pense que vous l’appliquez avant toute collision, lorsque vous créez le corps, soit le définir vous-même en utilisant setMass (); ou demandez à box2d d'estimer une masse en fonction de la forme, en utilisant Méthode SetMassFromShapes ().

hth

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top