Ich habe dies mit einem Debug-Renderer herausgefunden. Wenn das Spiel beginnt, ist alles in Ordnung. Aber wenn eine Kollision passiert, ist die Rotation des Sprites viel größer als sein Körper. Das Sprite und der Körper stimmen überein, wenn der Körper vollständig horizontal ist.
Der Rotationsursprung des Sprites scheint weit davon entfernt zu sein, wo er sein sollte. Hier ist mein Code:
Sprite sprite = data.sprite;
position = body.getPosition();
sprite.setPosition(
position.x - sprite.getWidth() / 2,
position.y - sprite.getHeight() / 2
);
sprite.setOrigin(position.x, position.y);
sprite.setRotation(MathUtils.radiansToDegrees * body.getAngle());
Wie Sie sehen können, versuche ich sogar setOrigin
erfolglos , den Mittelpunkt seiner Rotation festzulegen. Wie kann ich das beheben?
quelle