定位平台的Jbox2d问题

时间:2018-11-03 18:39:21

标签: java game-development jbox2d

我正在开发一个平台平台,并且一切正常,除了,我似乎无法为静态平台定位主体。

    // creating all the bodies
    BodyDef bdef = new BodyDef();
    bdef.position.set(x, y);
    bdef.type = BodyType.STATIC;
    Body body = world.createBody(bdef);

    PolygonShape shape = new PolygonShape();
    shape.setAsBox(width, height);      
    FixtureDef fdef = new FixtureDef();
    fdef.friction = 0.3f;
    fdef.shape = shape;
    body.createFixture(fdef);

这是用于创建地图中每个主体的常规代码。主体可以正常工作,但是它们与我设置的地图的宽度或坐标都不对齐。我注意到我必须指定左下角作为起点以使其成为主体,但是我还缺少什么呢?为什么身体倾向于变大并超过X和Y的起点?

1 个答案:

答案 0 :(得分:0)

box2d中的实体是从它们的中心点制成的。定义位置时,将其设置为中心,定义宽度/高度时,实际上是将宽度/高度设置为一半(即,尺寸最终是预期值的两倍)。