Java游戏开发 - 在鼠标坐标处查看和拍摄

时间:2011-06-01 23:19:13

标签: java mouse angle

我要制作一个游戏,你可以从上面看到一个角色。但问题是如何让角色始终看着鼠标呢?我如何计算角度,以便我可以向鼠标射击(我正在寻找的位置)。我想你必须玩三角学和类似的东西来获得角度,但我真的不知道如何。

我非常擅长数学,所以如果你们给我一些帮助,我可能会弄清楚。

对不起我最后的英语不好,我是瑞典人:)

谢谢, Alexandberg

2 个答案:

答案 0 :(得分:1)

如你所说,在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,无论

答案 1 :(得分:1)

double angle = Math.atan2(yMouse-yChar, xMouse-xChar);