gpt4 book ai didi

box2d - 为什么 body 不会在重力作用下下落?

转载 作者:行者123 更新时间:2023-12-01 10:34:58 25 4
gpt4 key购买 nike

我是 box2d 和 libgdx 游戏开发框架的新手。

我创造了一个世界和一个圆形。

我遇到了重力问题。我在 libgdx box2d 中创建的圆没有在重力作用下掉落。请帮我解决这个问题。

public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

box2dDebugRenderer.render(world, orthographicCamera.projection);

world.step(TIME_STEMP, VELOCITY_ITERAIONS, POSITION_ITERATION);
System.out.println(b.getPosition().y);
}

@Override
public void resize(int width, int height) {
orthographicCamera.setToOrtho(false, width/10, height/10);
orthographicCamera.update();
}

@Override
public void show() {
world = new World(new Vector2(0, -9.81f), true);
box2dDebugRenderer = new Box2DDebugRenderer();
orthographicCamera = new OrthographicCamera();


BodyDef balldef = new BodyDef();
balldef.type = BodyType.DynamicBody;
balldef.position.set(0, 1);



CircleShape ballshape = new CircleShape();
ballshape.setRadius(1f);


FixtureDef ballfixture = new FixtureDef();
ballfixture.density = 1000f;
ballfixture.friction = .3f;
ballfixture.restitution = .7f;
ballfixture.shape = ballshape;

b = world.createBody(balldef);
f = b.createFixture(ballfixture);


}

最佳答案

这是你的问题。-

final float TIME_STEMP = 1/60;

您正在进行整数除法,结果为 0。换句话说,你的世界被困在了时间里。试试这个。-

final float TIME_STEMP = 1.0f / 60.0f;

关于box2d - 为什么 body 不会在重力作用下下落?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19364637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com