Es gibt zwei Arten von Formen und drei Möglichkeiten, sie in Box2D zu erstellen.
Eine b2CircleShape hat immer ihren Mittelpunkt in der Mitte des Kreises. Wenn Sie einen "einseitigen Kreis" erstellen möchten, müssen Sie den Kreis mit einer Verbindung an einem anderen Objekt (z. B. einem winzigen Kreis darin) befestigen.
Eine b2PolygonShape kann mit SetAsBox initialisiert werden. SetAsBox platziert den Ursprung standardmäßig in der Mitte des Rechtecks. Sie können jedoch ein b2Vec2 als drittes Argument übergeben, um den Ursprung an einer anderen Stelle zu platzieren.
Eine Nicht-Box-b2PolygonShape wird mit dem Ursprung an den lokalen Koordinaten 0,0 initialisiert. Um eine Form zu erstellen, die nur eine Richtung umfasst, z. B. nach rechts und oben, geben Sie einfach Koordinaten wie (0, 0), (0, 5), (5, 5), (5, 0) an und konstruieren Sie die Form nur entlang lokaler Koordinaten die sich nach oben und rechts bewegen (und in CCW-Wicklungsreihenfolge).
Denken Sie daran, dass der Ursprung der Form immer die lokale Koordinate (0, 0) ist. Wenn Sie versuchen, es als "Verschieben des Ursprungs" zu betrachten, werden Sie sich nur verwirren - was Sie tun, ist, die anderen Scheitelpunkte relativ zum Ursprung zu versetzen.