3

Libgdx Box2dで1つのボディのすべてのフィクスチャの位置を取得するには? フィクスチャには位置ゲッターがないようです。この質問が初心者である場合は申し訳ありませんが、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 本体からすべてのフィクスチャのリストを取得します。各フィクスチャのshapeを取得します。形状が CircleShape タイプの場合、使用できる getPosition() メソッドがあります。ただし、取得される位置は、b2World 内の box2d 本体の位置を基準にしています。

于 2013-10-06T18:14:12.933 に答える