Sau một đêm ngủ ngon, tôi chỉ tỉnh dậy với giải pháp trong đầu! chức năng cam.angle (góc) rõ ràng là đặt góc tới những gì bạn muốn (theo độ) - nhưng bạn chỉ phải thực hiện nó một lần chứ không phải trong vòng lặp cập nhật, nếu không máy ảnh chỉ bắt đầu quay. Điều này hiển nhiên, nhưng tôi không hiểu.
vấn đề khác là cơ thể Box2D có "vô tận" độ (i chuyển đổi tất cả mọi thứ để độ với * MathUtils.radiansToDegrees), vì vậy tôi đã phải hạn chế này để 0-359:
playerAngle = player.body.getAngle()*MathUtils.radiansToDegrees;
while(playerAngle<=0){
playerAngle += 360;
}
while(playerAngle>360){
playerAngle -= 360;
}
camera của độ đi từ -180 đến 180, vì vậy bạn cũng phải chuyển đổi các 0-359:
camAngle = -getCameraCurrentXYAngle(camera) + 180;
chức năng "getCameraCurrentXYAngle (cam) là như sau:
public float getCameraCurrentXYAngle(OrthographicCamera cam)
{
return (float)Math.atan2(cam.up.x, cam.up.y)*MathUtils.radiansToDegrees;
}
01.235.
Và bây giờ sử dụng này để cập nhật cam của bạn để chuyển động quay của máy nghe nhạc của bạn:
camera.rotate((camAngle-playerAngle)+180);
Tôi hy vọng điều này sẽ giúp người upvoted câu hỏi của tôi;)
Chúc mừng và chúc một ngày năng suất cao! Jonas