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 回答