Frage

Ich bin mit mousejoint zu ziehen Körper in box2d, aber es verursacht Trägheitsverzögerung.

existiert es irgendeine Art und Weise einen Körper sofort ziehen?

War es hilfreich?

Lösung

Die Lösung ist auf Eigenschaften frequencyHz und dampingRatio in Ihrem b2MouseJointDef abzustimmen.

Zum Beispiel:

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);

Andere Tipps

Ich versuche, ein pong-Stil Spiel in Verarbeitung / Box2D Bibliothek zu implementieren und ich erwarte das gleiche Problem. Eine Sache, die dem Sinns kommt, ist ein verstecktes Objekt in der Box2D Welt aufrecht zu erhalten, eine, die mit Gelenken die herkömmliche Art und Weise arbeitet, und dann ein virtuelles Objekt zu zeichnen, das die Maus ohne Frame-Verzögerung folgt. Dies könnte ausreichen, um den Benutzer zu täuschen.

Auf der anderen Seite, Box2D ist keine strenge Physik-Simulation und ermöglicht eine gewisse Vergebung in überlappenden Objekten, so scheint es wirklich, wie sollte es eine Möglichkeit, dies zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top