おやすみなさいの睡眠の後、私は解決策を念頭に置いて目が覚めました!関数 cam.angle(angle) は明らかに角度を希望する角度に設定します(度単位)-ただし、更新ループではなく、一度だけ実行する必要があります。そうしないと、カメラが回転し始めます。これは明らかですが、私はそれを理解できませんでした。
もう 1 つの問題は、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);
これが私の質問に賛成した人に役立つことを願っています;)
乾杯し、生産的な一日を!ジョナス