Вопрос

Я использую Box2D (версию AS3 / Flash, если это имеет значение), и я пытаюсь подсчитать, какой вес несет каждое тело.

Я знаю, как перебирать все тела, и я знаю, как опрашивать процедуры обнаружения столкновений, но, похоже, силы столкновения сходят на нет, как только применяется вес.Есть ли какое-то свойство "полной статической силы", которое я упускаю из виду?

Это было полезно?

Решение

Используя тип contactResult в необязательном объекте contactListener, вы можете опрашивать normalForce каждого элемента, чтобы выяснить, какие силы (которые по сути включают вес) применяются к объектам.

Обратите внимание, что спящие тела (например, стек покоя) не будут вызывать contactResults, но они должны нормально работать, если вы выключаете сон или если вы хотите измерять силы только во время движения.

Информацию о том, как реализовать класс contactListener, смотрите в документации.

Другие советы

Прошло некоторое время с тех пор, как я играл с Box2D, но пытались ли вы опрашивать GetReactionForce () об интересующих вас вещах?

Я знаю, что когда я выполнял симуляцию моста и хотел, чтобы мост сломался в зависимости от его веса, я опросил GetReactionForce () , и если он был выше определенного порога, я удалил соединение, соединяющее два тела.

Я думаю, все, что вам нужно сделать, это перебрать ваши экземпляры b2Body и использовать Получить массу() метод.

Я не уверен, что вы подразумеваете под "полной статической силой".

Что касается веса / mass, я думаю, вы применяете его перед любыми столкновениями, когда создаете тело, либо установите его самостоятельно, используя Установочная масса();или попросите box2d оценить массу на основе формы, используя Набор массивных фигур() метод.

hth

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top