当使用Pixel per meter时,Box2d bodys不会在屏幕中居中

时间:2015-07-09 03:38:29

标签: libgdx box2d

我正在尝试创建一个样本圆来测试每米的像素数。

我的PPM设置为100。 高度和宽度设定为320和480

你为什么它不会在y轴中居中,但它会以x轴为中心。当我将半径设置为50时,它也不会画任何东西。我在这里错过了什么吗?

 this.world = new World(new Vector2(0.0f, -9.8f), true);

        BodyDef bodyDef = new BodyDef();
        bodyDef.position.set(  App.WIDTH / 2 / PPM, App.HEIGHT / 2 / PPM);
        bodyDef.type = BodyDef.BodyType.StaticBody;

        Body body = world.createBody(bodyDef);

        FixtureDef fixtureDef = new FixtureDef();
        CircleShape shape = new CircleShape();
        shape.setRadius(100 / PPM);
        fixtureDef.shape = shape;

        body.createFixture(fixtureDef);
        shape.dispose();
        player = new Player(body);

        box2DDebugRenderer = new Box2DDebugRenderer();
        box2dCam = new OrthographicCamera();


        box2dCam.setToOrtho(false, App.WIDTH / PPM  ,  App.HEIGHT / PPM  );

当Radius为100时,当半径为50时,屏幕只是纯黑色

enter image description here

1 个答案:

答案 0 :(得分:0)

没关系。

shape.setRadius((float) 20 / PPM);我必须将它投射到浮动以显示低于100的所有

PPM被声明为int应该是浮动的以避免强制转换。

将其置于屏幕中心

box2dCam.position.set(App.WIDTH / 2 / PPM, App.HEIGHT / 2 / PPM, 0);