0

私はandengineを使用して、box2dを介して物理シミュレーションを作成しています。

ボディは、スプライトを使用してPhysicsFactoryを介して作成されます。

私の考えは、次のパターンに従って、これらのスプライトを手続き的に配置することです。externalPointを中心とした回転

基本的に、私の世界座標の中心を表す1つの中央のスプライトと、myWorldの中心(円の内側の「X」)を中心にベーススプライトを回転させることによって作成される一連のクローンスプライトです。

andengine内でopenglの方法を使用しようとしました(変換、回転、逆変換)

super(stamiRadious, 0, image);     //stamiDoadious is te distance from radix (world center) and "petal" attach point
this.setRotationCenter(0, 0);
this.setRotation((float) Math.toDegrees(angleRad));
this.setPosition(this.getX()+radixX, this.getY()+radixY);

しかし、私は失敗しました:結果は正しくありません(スプライトが画像よりもはるかに大きいかのように、間違った最終位置、および間違ったbox2dボディプロパティ)

私は問題の一部がとの解釈に依存していると信じてsetRotationおりsetRotationCenter、一般的にはandengine座標系+box2d座標系の理解に依存しています。

考え/ドキュメント/説明へのリンクはありますか?

4

1 に答える 1

4

スプライトの物理表現(ボディ)を作成したら、スプライトを変更する方法に十分注意する必要があります。通常、スプライトはもう変更しませんが、代わりに次のように呼び出してボディを変更します。

someBody.setTransform(); // Note that positions must be divided by PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT!

お役に立てば幸いです:)

于 2011-04-25T11:28:45.527 に答える