我目前正在设计一款游戏,而且我遇到了一个主要涉及三角函数的问题。
玩家将相机保持在我想要瞄准另一个点的位置,除了相机或枪的功能之外,我将所有编程都关闭(以避免混淆视图空间作为相机)。我所拥有的只是鼠标位置x,y和此代码的参数:
var pos=this.gameObject.phy.pos
this.angle=Math.atan((x-pos.x)/(y-pos.y))*57.2957795
pos.x/pos.y
是玩家自己的坐标
理想情况下,我希望角度为度,因此*57
,我没有多少使用弧度的经验。
我也希望角度处于标准位置,0*
朝向左侧,逆时针或顺时针方向产生负角度。
这个的适当比例是什么?
答案 0 :(得分:2)
当相对X和Y都为负时,符号将取消,产生与相对X和Y都为正时相同的结果。出于这个原因,它可能会给你一个指向相反方向的角度。
解决这个问题的方法是使用Math.atan2
,根据需要根据符号调整角度。它需要两个参数:相对Y和相对X.所以:
this.angle=Math.atan2(y-pos.y, x-pos.x)/Math.PI*180;