我将制作一款游戏,您可以在上面看到一个人物跑来跑去。但问题是我如何让角色始终看着鼠标?我该如何计算角度,以便可以朝鼠标拍摄(我正在寻找的位置)。我想你必须玩三角和类似的东西来获得角度,但我真的不知道如何。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