有没有办法在不使用body.setTransform()方法的情况下围绕与身体中心不同的点旋转运动物体?因为当我使用setTransform()时,物理行为变得奇怪。我用的是andengine。
答案 0 :(得分:1)
它旋转的点是否会改变?如果不是,您可以从身体中心偏移身体的形状。然后当身体旋转时,它将围绕该点旋转。
另一个想法是使用关节。(*在下面指出)
答案 1 :(得分:0)
您可以使用方程来表示圆的x和y坐标。如果您使用下面的示例代码,则场景中的每次触摸都会导致角度减少0.1,这将导致身体绕点旋转( xCenter , yCenter ),半径为 r 。
private float p2m = PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT;
@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
angle -= 0.1;
Vector2 vector = Vector2Pool.obtain(xCenter/p2m + (r/p2m) * Math.cos(angle), (yCenter/p2m + (r/p2m) * Math.sin(angle));
body.setTransform(vector, angle);
Vector2Pool.recycle(vector);
return false;
}