0

このコードで物理エンジンを使用してボディを配置しようとしています:

                float touchX = pp[0];
                float touchY = pp[1];
                float diffX = touchX - mBody.getPosition().x;
                float diffY = touchY -  mBody.getPosition().y;                   
                mBody.setLinearVelocity(new Vector2(( pp[0])  / PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT , ( pp[1]) / PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT));

X 座標と Y 座標は TMX タイル マップからのもので、32 ピクセルの正方形です。物理エンジンでボディをタイル マップ (pp[] 配列に保持されている) の特定のタイルに移動しようとしていますが、代わりに移動しますランダムな混沌とした道へ。これは、X、Y座標を変換してそのポイントに移動する正しいアプローチですか?? ありがとう

4

2 に答える 2

1

.setLinearVelocityは、ボディを特定の位置に移動しません。これを行うには、.setTransformを使用する必要があります

于 2012-04-03T09:03:08.413 に答える
0

.setLinearVelocity体に力を加えて動かすようなものなので、思い通りの位置に動かない。

.setTransform体の位置を設定するようなものです。A から B にゆっくりと移動するのではなく、A から消えて B に突然現れます。

自分でコードを書くだけで簡単にゆっくり動かすことができます。

于 2013-04-06T15:45:22.230 に答える