Conversão Libgdx Box2D pixel para metro?

Ao tentar programar um jogo usando o Box2D, tive um problema com o Box2D. Preenchi números de pixels para os comprimentos das texturas e sprites para criar uma caixa em torno dele. Tudo estava no lugar certo, mas por algum motivo tudo correu muito devagar. Ao pesquisar na internet, descobri que, se você não converter pixels em metros, o box2d pode manipular formas como objetos muito grandes. isso parecia ser uma causa lógica de tudo se movendo lentamente.

Encontrei perguntas semelhantes neste site, mas as respostas não pareciam realmente ajudar. na maioria dos casos, a solução era criar métodos para converter os números de pixels em metros usando um fator de escala. Eu tentei isso, mas tudo ficou fora do lugar e tinha tamanhos errados. isso me pareceu lógico, pois os números foram alterados, mas tinham o mesmo significado.

Eu queria saber se existe uma maneira de fazer com que os pixels signifiquem menos metros, então tudo deve estar no mesmo lugar com o mesmo tamanho (pixel), mas significa menos metros. Se você tem uma maneira diferente que você acha que pode ajudar, eu também gostaria de ouvi-la.

Aqui está o código que eu uso para criar a câmera

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

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

Este é o método que eu uso para criar um objeto:

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

Para criar um item, neste caso, uma tabela, eu uso o seguinte:

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

Os Sprites são desenhados no item usando o seguinte método:

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

Os sprites também têm tamanhos de pixel.

Usando esses métodos, ele exibe as imagens nos lugares certos, mas tudo se move lentamente. Eu queria saber como ou se eu teria que mudar isso para fazer os objetos se moverem corretamente e / ou significar menos. Desde já, obrigado.