2013-06-13 9 views
5

Bitte überprüfen Sie das Bild anhängen es ist eine Art Wippe. Aber vom Bild haben die schwarzen Körper die gleiche Dichte. Und das horizontale Rechteck wird mit dem Dreieck mittels "Revolute" -Verbindung befestigt. Aber immer noch keine Anregung. In der gegenwärtigen Situation muss es ausgeglichen sein.Balance box2d Objekte

enter image description here

+0

Ich denke, Sie müssen die Schwerkraft deaktivieren, wie Ihr Code möglicherweise verwendet - (void) Beschleunigungsmesser: (UIAccelerometer *) Beschleunigungsmesser didAccelerate: (UIAcceleration *) Beschleunigung; – iphonic

+0

Kein Beschleunigungsmesser ist aktiviert. und wenn die Schwerkraft in box2d deaktiviert ist, dann wird es natürlich aussehen. :-) –

Antwort

0

Aufgrund winziger Ungleichgewichte im Layout durch die Grenzen der Gleitkommagenauigkeit verursacht usw., dann ist es sehr unwahrscheinlich, dass dies jemals in der Mitte zuverlässig ausgeglichen werden (genau wie im richtigen Leben). Eine Sache, die Sie versuchen könnten, ist, dem Strahl eine eckige Dämpfung zu geben, die es weniger leicht macht, sich herumzudrehen, so dass er schneller langsamer wird und früher schläft. Das könnte genug sein, damit es zur Ruhe kommt, ohne auf die eine oder andere Seite zu fallen.

+0

Irgendeine andere Möglichkeit zu erstellen? becoz momentan schläft es auch schnell was ich nicht will. Dann habe ich versucht den Körper zu wechseln um nicht zu schlafen und dann auch noch die ganze Welt, aber immer noch nicht funktionierend. –

+0

Ich bezweifle es. Wenn es nicht schlafen kann, wird es auf eine Seite kippen. Vielleicht könntest du ein winziges Drehmoment anwenden, um das Level zu halten. – iforce2d

0

Ich glaube nicht, dass es das Problem der Fließkomma-Präzision ist. Zumindest kann es nicht so schnell erscheinen. Soweit ich weiß, löst Box2D Kontakte (einschließlich Ruhekontakte) nacheinander auf. Es ist viel schneller als die simultane Kontaktauflösung, aber gleichzeitig weniger präzise, ​​da die Auflösung eines Kontakts Auswirkungen auf die anderen hat.

Ich würde versuchen, einen Motor mit einem kleinen maximalen Drehmoment zu Ihrem Drehgelenk hinzuzufügen und seine Geschwindigkeit zu steuern, um das System auszubalancieren.

+0

kein Glück mit diesem auch versucht :( –