即使在像素/米转换后,LibGDX Box2D重力也很慢

时间:2015-08-12 21:42:16

标签: java libgdx box2d

我正在做一个测试项目来学习box2d,我遇到了一个问题。我的模拟中的圆体慢慢地落在了veerrry上。我完成了所有像素/米转换,如此视频所示:https://youtu.be/IDZMRDb1A_M?t=13m35s(设置为涵盖此主题的教程的一部分)。这是我的代码:

public static final float PPM = 32;//Pixels per meter

private World world;
private Box2DDebugRenderer debugRenderer;

private OrthographicCamera box2DCamera;

@Override
public void create() {
    world = new World(new Vector2(0, -9.81f), true);
    debugRenderer = new Box2DDebugRenderer();

    //Create test platform
    BodyDef bodyDef = new BodyDef();
    bodyDef.position.set(100 / PPM, 200 / PPM);
    bodyDef.type = BodyType.DynamicBody;

    Body body = world.createBody(bodyDef);

    CircleShape shape = new CircleShape();
    shape.setRadius(32 / PPM);

    FixtureDef fdef = new FixtureDef();
    fdef.shape = shape;
    body.createFixture(fdef);

    box2DCamera = new OrthographicCamera();
    box2DCamera.setToOrtho(false, Metroid.WIDTH / PPM, Metroid.HEIGHT / PPM);
    box2DCamera.translate(Metroid.WIDTH / 2 / PPM, Metroid.HEIGHT / 2 / PPM);
}

@Override
public void update(float deltaTime) {
    world.step(deltaTime, 6, 2);
}

@Override
public void render(SpriteBatch batch) {
    debugRenderer.render(world, box2DCamera.combined);
}

这是非常基本的,我完全不知道出了什么问题。在此先感谢:)

编辑(测试的额外细节):经过一些测试,我发现即使将world.step调用的步骤时间更改为2000,它仍然非常慢,速度更快,但仍然非常慢。相信我,它被称为,我测试了它。

0 个答案:

没有答案