La manera más simple es utilizar SetPosition
/SetTransform(position,angle)
. Por ejemplo:
body->SetTransform(b2Vec2(0,0),body->GetAngle())
Obviamente, el salto instantáneo significa que está subvirtiendo la simulación de la física, pero es la forma más sencilla más directa para establecer la posición de un cuerpo.
Dado que no desea utilizar SetPosition
(que es equivalente al código publicado anteriormente), entonces ApplyLinearImpulse
con la fuerza adecuada (en función de la masa y la velocidad actual del cuerpo) hará el truco, y es más correcta a partir de una simulación de punto de vista, pero pueden ser más problemáticos efectos secundarios potenciales dados, etc.
de todos modos, iforce2d cubierto SetLinearVelocity
..., y yo añadiría que una junta de ratón es muy útil incluso cuando el "mouse" no está involucrado.
¿te refieres a que está anclado en un punto y quieres que se mueva o quieres que se mueva a un lugar determinado y luego te quedes allí? Por favor, elabore en cualquier caso. – Shannon