Libgdx Box2D Konvertierung von Pixel zu Meter?

Beim Versuch, ein Spiel mit Box2D zu programmieren, stieß ich auf ein Problem mit Box2D. Ich habe die Länge der Texturen und Sprites in Pixelzahlen angegeben, um einen Rahmen zu erstellen. Alles war am richtigen Ort, aber aus irgendeinem Grund ging alles sehr langsam. Beim Durchsuchen des Internets stellte ich fest, dass box2d Formen als sehr große Objekte behandelt, wenn Sie Pixel nicht in Meter umwandeln. Dies schien eine logische Ursache dafür zu sein, dass sich alles langsam bewegt

Ich habe auf dieser Website ähnliche Fragen gefunden, aber die Antworten schienen nicht wirklich zu helfen. In den meisten Fällen bestand die Lösung darin, Methoden zur Umrechnung der Pixelzahlen in Meter unter Verwendung eines Skalierungsfaktors zu entwickeln. Ich habe es ausprobiert, aber alles wurde verlegt und hatte falsche Größen. das erschien mir logisch, da sich die zahlen geändert hatten, aber die gleiche bedeutung hatten.

Ich habe mich gefragt, ob es eine Möglichkeit gibt, die Pixel weniger Meter bedeuten zu lassen, damit sich alles an der gleichen Stelle mit der gleichen (Pixel-) Größe befindet, aber weniger Meter bedeutet. Wenn du eine andere Art hast, die deiner Meinung nach helfen könnte, würde ich es auch gerne hören.

Hier ist der Code, mit dem ich die Kamera erstelle

        width = Gdx.graphics.getWidth() / 5;
        height = Gdx.graphics.getHeight() / 5;

        camera = new OrthographicCamera(width, height);
        camera.setToOrtho(false, 1628, 440);
        camera.update();

Dies ist die Methode, mit der ich ein Objekt erstelle:

public void Create(float X, float Y, float Width, float Height, float density, float  friction, float restitution, World world){ 
    //Method to create an item
    width = Width;
    height = Height;

    polygonDef = new BodyDef();
    polygonDef.type = BodyType.DynamicBody;
    polygonDef.position.set(X + (Width / 2f), Y + (Height / 2f));

    polygonBody = world.createBody(polygonDef);

    polygonShape = new PolygonShape();
    polygonShape.setAsBox(Width / 2f, Height / 2f);

    polygonFixture = new FixtureDef();
    polygonFixture.shape = polygonShape;
    polygonFixture.density = density;
    polygonFixture.friction = friction;
    polygonFixture.restitution = restitution;

    polygonBody.createFixture(polygonFixture);
}

Zum Erstellen eines Elements, in diesem Fall einer Tabelle, verwende ich Folgendes:

    Table = new Item();
    Table.Create(372f, 60f, 152f, 96f, 1.0f, 0.2f, 0.2f, world);

Die Sprites werden mit der folgenden Methode auf das Element gezeichnet:

public void drawSprite(Sprite sprite){
    polygonBody.setUserData(sprite);
    Utils.batch.begin();
    if(polygonBody.getUserData() instanceof Sprite){
        Sprite Sprite = (Sprite) polygonBody.getUserData();
        Sprite.setPosition(polygonBody.getPosition().x - Sprite.getWidth() / 2, polygonBody.getPosition().y - Sprite.getHeight() / 2);
        Sprite.setRotation(polygonBody.getAngle() * MathUtils.radiansToDegrees);
        Sprite.draw(Utils.batch);
    }
    Utils.batch.end();
}

Die Sprites haben auch Pixelgrößen.

Mit dieser Methode werden die Bilder an den richtigen Stellen angezeigt, aber alles bewegt sich langsam. Ich habe mich gefragt, wie oder ob ich das ändern muss, damit sich die Objekte richtig bewegen und / oder weniger bedeuten. Danke im Voraus