box2d, возможно ли заморозить тело? - PullRequest
1 голос
/ 24 марта 2011

Эй, мне интересно, можно ли заморозить тело из bodyList (), а затем разморозить. Разморозка должна сохранять все свои инерции, чтобы они продолжали свой путь, как если бы они никогда не замерзали ...

В основном я использую b-> SetType (b2_staticBody) и b-> SetType (b2_dynamicBody).

Но это создает огромную проблему, поскольку сбрасывает все исходные значения инерции.

Тысяча благодарностей,
Оливер.

Ответы [ 2 ]

5 голосов
/ 24 марта 2011

Я не могу проверить это прямо сейчас, но вы пробовали

b->SetActive(false); //freeze
b->SetActive(true); //unfreeze

Я думаю, что это замораживает вещи на месте, но я не уверен, сохранит ли это вмешательство.Документация гласит, что неактивные тела не моделируются, поэтому я ожидаю, что они просто сидят там до тех пор, пока не станут активными.

1 голос
/ 24 марта 2011

Возможно, вы могли бы сделать ваше тело неприкосновенным, указав его b2Filter. Так что он не будет сталкиваться с другими телами. А также примените силу, равную гравитации - чтобы она оставалась там, где вы хотите.

Но я думаю, что правильным способом будет установить его тип на статический и сохранить параметры инерции, чтобы восстановить их позже

...