经过一个良好的夜间睡眠,我刚刚醒来的解决方案记住! (角度)显然确实将角度设置为你想要的角度(以度为单位) - 但是你必须只做一次而不是在你的更新循环中,否则相机就开始旋转。这是显而易见的,但我只是没有得到它。
另一个问题是Box2D的身体有“没完没了”度(我转换一切度* MathUtils.radiansToDegrees),所以我不得不来约束这些为0至359:
playerAngle = player.body.getAngle()*MathUtils.radiansToDegrees;
while(playerAngle<=0){
playerAngle += 360;
}
while(playerAngle>360){
playerAngle -= 360;
}
相机的度去从-180到180,所以你也必须将其换算成0到359:
camAngle = -getCameraCurrentXYAngle(camera) + 180;
功能“getCameraCurrentXYAngle(CAM)如下:
public float getCameraCurrentXYAngle(OrthographicCamera cam)
{
return (float)Math.atan2(cam.up.x, cam.up.y)*MathUtils.radiansToDegrees;
}
而现在使用它来更新您的凸轮您的播放器的旋转:
camera.rotate((camAngle-playerAngle)+180);
我希望这有助于谁upvoted我的问题的人;)
欢呼和有一个富有成效的一天! Jonas