Box2d运动体不移动



据我所知,这应该会导致身体移动。我在类中有一个更新方法,但我不确定还要添加什么。我使用box2d作为libgdx的一部分。我看过的所有地方都只是说要设置线速度,但它不起作用。

    BodyDef bodyDef = new BodyDef();
    bodyDef.position.set(new Vector2(pos.x, pos.y));
    bodyDef.type = BodyDef.BodyType.KinematicBody;
    bodyDef.linearDamping = 0.0f;
    bodyDef.angularDamping = 0.0f;
    unitBoxBody = world.createBody(bodyDef);
    PolygonShape player = new PolygonShape();
    player.setAsBox(unit * xSize, unit * ySize); 
    FixtureDef fixtureDef = new FixtureDef();
    fixtureDef.shape = player;
    fixtureDef.density = 0.0f;
    fixtureDef.friction = 0.0f; 
    fixtureDef.restitution = 0.0f;
    fixture = unitBoxBody.createFixture(fixtureDef);
    player.dispose();
    unitBoxBody.setLinearVelocity(10, 0);

我使用了许多大小值来表示没有变化的速度

你必须让你的世界一步:

把这个放到你的render()方法中:world.step(TIMESTEP, VELOCITY_ITERATIONS, POSITION_ITERATIONS);

和定义这些变量:

private static final float TIMESTEP = 1.0f / 60.0f; 
private static final int VELOCITY_ITERATIONS = 8; 
private static final int POSITION_ITERATIONS = 3; 

最新更新