0

Box2D を使い始めたばかりで、奇妙な問題に遭遇しました。

オブジェクトの位置を定義済みの領域内に制限する簡単な機能があります。

これを行うには、ボディのワールド ポジションを取得し、定義済み領域のバウンディング ボックスの値と照合して、ボディに力を加えて保持します。

 if (bodyWorldPos.x >= worldWidth)
        body.setLinearVelocity(...);

これはうまくいきます。

ただし、物体が別の物体と衝突すると、この単純な方法は機能しなくなります。次のように取得されたボディのワールド位置:

body.getWorldPoint(body.getPosition())

間違った値を返します。

これは Box2D for LibGDX のバグですか、それとも何か間違っていますか?

4

1 に答える 1

1

関数 getWorldPoint は、点を「ローカル座標」(ボディの 0,0 位置を基準とする) からグローバル座標 (ワールドの 0,0 を基準とする) に変換します。

この目的のためには、 getPosition() のみを使用できると思います。

于 2012-12-28T18:20:14.683 に答える