我正在尝试使用此代码使用物理引擎定位一个物体:
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坐标并转移到那一点的正确方法吗? 感谢
答案 0 :(得分:1)
.setLinearVelocity不会将身体移动到某个位置。为此,您需要使用.setTransform
答案 1 :(得分:0)
.setLinearVelocity
就像你给身体增加力量并让它移动一样,所以它不会移动到你想要的位置。
.setTransform
就像你设定身体的位置一样。因此它不会从A缓慢移动到B,但是从A消失并突然出现在B
您可以通过代码自行轻松移动它。