Я использую mousejoint для перетаскивания тел в box2d, но он вызывает инерционную задержку.
Это существует какой-либо способ перетащить тело мгновенно?
Решение состоит в том, чтобы настроить свойства frequencyHz и dampingRatio в вашем b2MouseJointDef.
Например:
b2MouseJointDef md;
md.body1 = _groundBody;
md.body2 = body;
md.target = p;
md.maxForce = 10000.0f * body->GetMass();
md.dampingRatio = 0;
md.frequencyHz = 100;
_world->CreateJoint(&md);
Я пытаюсь реализовать игру в pong-стиле в библиотеке Processing/Box2d и ожидаю, что у меня будет та же проблема. Единственное, что приходит на ум, это поддерживать скрытый объект в мире Box2d, который работает с суставами обычным способом, а затем нарисовать виртуальный объект, который следует за мышью без задержки кадра. Этого может быть достаточно, чтобы обмануть пользователя.
С другой стороны, Box2d не является строгой симуляцией физики и допускает некоторое прощение в перекрывающихся объектах, поэтому действительно кажется, что должен быть какой-то способ сделать это.