Самый простой способ - использовать SetPosition
/ SetTransform(position,angle)
. Например:
body->SetTransform(b2Vec2(0,0),body->GetAngle())
Очевидно, что мгновенный скачок означает, что вы нарушаете физическое моделирование, но это самый простой и прямой способ установить положение тела.
Учитывая, что вы не хотите использовать SetPosition
(что эквивалентно приведенному выше коду), тогда ApplyLinearImpulse
с соответствующей силой (основанной на массе и текущей скорости тела) сделает свое дело, и является более правильным с точки зрения симуляции, но, вероятно, будет более проблематичным, учитывая потенциальные побочные эффекты и т. д.
В любом случае, iforce2d покрывает SetLinearVelocity
..., и я бы добавил, что мышиный сустав очень полезен, даже когда «мышь» не задействована.