我正在开发一个平台平台,并且一切正常,除了,我似乎无法为静态平台定位主体。
// 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的起点?
答案 0 :(得分:0)
box2d中的实体是从它们的中心点制成的。定义位置时,将其设置为中心,定义宽度/高度时,实际上是将宽度/高度设置为一半(即,尺寸最终是预期值的两倍)。