1
我想讓一個角色拿着槍,但我想讓槍隨着鼠標移動。例如,如果鼠標彈起,槍指向。如果鼠標位於左側,槍指向左側。我使用球員位置和鼠標位置來構造一個直角三角形,然後使用反正弦來查找仰角。但是,這隻適用於90度的移動。任何想法,我可以如何處理這個問題,以便獲得360度全方位的旋轉?LWJGL:基於鼠標位置旋轉四邊形
代碼計算角度:
private double calcAngle()
{
double mouseX,mouseY,subX,subY,playerToMouse,mouseToSub,angle;
mouseX = Mouse.getX();
mouseY = Mouse.getY();
subX = mouseX;
subY = y;
playerToMouse = Math.sqrt(Math.pow(x-mouseX,2)+Math.pow(y-mouseY,2));
mouseToSub = Math.sqrt(Math.pow(mouseX-subX,2)+Math.pow(mouseY-subY,2));
angle = Math.toDegrees(Math.asin(mouseToSub/playerToMouse));
return angle;
}
當前旋轉(粉紅色代表玩家;綠色代表槍;黃色代表鼠標):