我一直在寻找一些其他线程,尽管我已经尝试过的每一件事情,我在box2d中创建的形状不是呈现。这是非常奇怪的,我希望你们能提供一个解决方案。Box2D形状不渲染
public class worldRender {
fighterGame game;
PlayScreen renderGame;
private Viewport gamePort = new StretchViewport(1020/game.PPM,760/game.PPM);
World world = new World(new Vector2(0,-10), true);
Box2DDebugRenderer b2dr = new Box2DDebugRenderer();
private OrthographicCamera gameCam = new OrthographicCamera();
BodyDef bDef = new BodyDef();
public Body b2body;
FixtureDef fixtureDef = new FixtureDef();
ShapeRenderer shapeRender;
public worldRender() {
gameCam = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
gameCam.position.set(1020/2, 760/2, 0);
}
public worldRender(float dt) {
gameCam.update();
world.step(1/60f, 6, 2);
b2dr.render(world, gameCam.combined);
bodyRender();
}
public void bodyRender() {
BodyDef bdef = new BodyDef();
bdef.position.set(0.0f/game.PPM,4.0f/game.PPM);
bdef.type = BodyDef.BodyType.DynamicBody;
b2body = world.createBody(bdef);
FixtureDef fdef = new FixtureDef();
fdef.friction = 0.25f;
CircleShape shape = new CircleShape();
shape.setRadius(5);
fdef.shape = shape;
fdef.density = 1.0f;
b2body.createFixture(fdef);
}
}
是什么PPM'的'的价值,它是静态不变?,所有'gameCam'视首先不是取决于'gamePort'但你的视口参数定义位置。此外,您的代码不完整......您是在调用哪种方法 – Aryan
对于任何有兴趣的人,这个问题在这里进一步讨论:https://www.reddit.com/r/libgdx/comments/75lio3/box2d_shapes_not_rendering/ –
您是否在每次渲染场景时都创建'worldRender'的新实例?什么时候调用'worldRender(float dt)'? –