我將製作一款遊戲,您可以在上面看到一個人物跑來跑去。但問題是我如何讓角色始終看着鼠標?我該如何計算角度,以便可以朝鼠標拍攝(我正在尋找的位置)。我想你必須玩三角和類似的東西來獲得角度,但我真的不知道如何。Java遊戲開發 - 在鼠標座標處查看並拍攝
我很擅長數學,所以如果你們給我一些幫助,我可能會想出來。
而且對不起,我最終的英文不好,我是瑞典人:)
感謝, Alexandberg
我將製作一款遊戲,您可以在上面看到一個人物跑來跑去。但問題是我如何讓角色始終看着鼠標?我該如何計算角度,以便可以朝鼠標拍攝(我正在尋找的位置)。我想你必須玩三角和類似的東西來獲得角度,但我真的不知道如何。Java遊戲開發 - 在鼠標座標處查看並拍攝
我很擅長數學,所以如果你們給我一些幫助,我可能會想出來。
而且對不起,我最終的英文不好,我是瑞典人:)
感謝, Alexandberg
double angle = Math.atan2(yMouse-yChar, xMouse-xChar);
如你所說的一大提示可以在trig的
Point pl = getCharacterLox();
Point mouse = getMouseLoc();
double cos = (mouse.getX()-pl.getX());
double sin = (mouse.getY()-pl.getY());
cos/=Math.hypot(cos,sin);//normalize
double angle = Math.copySign(Math.acos(cos),sin);
我曾經發現在最後一行有一個小技巧:acos在0和PI之間,但是如果sin是負數,它應該被否定,如果sin爲0,它將評估爲+0.0,角度將爲0或PI無論如何不管
非常感謝,我想我現在明白了。 編輯:當我嘗試打印角度來檢查它是否工作,它只是在0-3(aprox)之間。我如何從中獲得角度?因爲我現在沒有看到我現在將如何使用角度做任何事情。 – ASandberg 2011-06-01 23:56:05
我想你回答了你自己的問題...使用trig – gshauger 2011-06-01 23:23:44