3

如何在 Libgdx Box2d 中获取一个身体的每个固定装置的位置?似乎固定装置没有位置获取器。对不起,如果这个问题很无聊,但我刚刚开始学习 Box2d。

4

2 回答 2

9

一旦您了解了Transform.

让我们以圆形夹具为例,因为它们最容易演示。

// we need to get the body's position, let's use a Vector2 to store it.
Vector2 vec = new Vector2();
Body body = fixture.getBody();

// what is this magic? Why, it's a wonderful object that transforms fixture
// position information based on the body's position!
Transform transform = body.getTransform();

CircleShape shape = (CircleShape) fixture.getShape();
vec.set(shape.getPosition());
// apply the transformation
transform.mul(vec);
// now vec.x and vec.y will be what you want!

简单的!

但是如果你有一个多边形而不是一个圆呢?又轻松了!只需将变换应用于形状中的每个顶点。

于 2013-11-02T13:41:00.887 回答
1

从您的 box2d 正文中获取所有灯具的列表。对于每个夹具获得它的形状。如果形状是 CircleShape 类型,那么您可以使用 getPosition() 方法。但是,检索到的位置是相对于 b2World 中 box2d 主体的位置的。

于 2013-10-06T18:14:12.933 回答