我对径向计算不是很好,我无法想象,因此我不能确定。我需要一些关于 Math.atan2() 的解释,拜托。
通常的任务 - 使对象在鼠标之后旋转。我得到了差异,得到了角度,我在文本区域看到了角度,并且对象直接跟随鼠标。我现在需要的是一切顺利。我需要角度为 0-360 但在 180 对象旋转后变为 -180 并向后计数,鼠标旋转在 270 后变为 -90 并且也计数回 0。
更深入一点,我想要一个平滑的旋转,这意味着一个设定的速度,比如每帧 2 次,以最短的方式满足鼠标角度。需要设置条件,我不能这样做,因为我什至不了解这些值的逻辑。它们几乎是随机的!我不需要完成或复制它,我需要理解才能继续前进,所以如果你能解释它是如何工作的以及我做错了什么......
代码很简单:angle = Math.atan2(deltaY,deltaX)/(Math.PI/180) + 90; //+90 导致它看不到鼠标// Object01.rotation = angle;
所以问题是我什至不明白它是如何工作的......如果2个值不同,则对象不能指向鼠标,但它确实如此。数字是谎言,如果我需要基于这些数字的东西,那将是错误的。非常错误......需要组织。这意味着我希望一切都准备好进行进一步的编码,这些编码将基于旋转而不是因为不合适而上下跳跃。
添加:解释它是如何发生的,我上面描述的。为什么价值观如此混乱?正如我所说,关于如何安排它以进行进一步编码的建议。如果我想让旋转成为射击方向和瞄准速度等重要事件的一个元素,那么仅动画是行不通的。或开锁锁的旋转速度变化。或者任何更复杂的东西,如果我不制作直接和清晰的值就不会起作用:从 A 到 Z,从 1 到 10,2 到 3 之间没有 8s,B 之前没有 R,当对象面对它时没有鼠标角度 270 - 90时,他们都从0开始,一起达到180。哦,正如我所说,面向鼠标的工作,但是当我尝试以最短的方式以一定的速度追逐鼠标时,它会在所有 4 个季度中将对象转向错误的方向。我假设它' s 还有关于这个反正切的事情,它在不同的季度有 delta 值变为负数的问题。当我更改它时,其他一些值会出错......所以我需要确切地知道我在做什么才能知道出了什么问题以及如何解决它。所以是的。需要解释。请。
Add2: 角度Z = Math.atan2(oppSide,adjSide)/(Math.PI/180); 所以我将轮换分为 4 个季度,每个季度我都将 atan 视为 opp。侧向 adj. 边,然后分别添加 90、180 和 270。我的鼠标旋转 360 度,但是通过简单 object.rotation = angleZ; 跟随的对象 仍然到 180,然后从左侧的 -180 到 0。为什么它忽略了简单的命令?旋转适合,但我需要它是平等的,没有惊喜!为什么会这样?我直接设置为等于另一个数字作为动作的基础的数字如何将自身更改为相同旋转但完全不同的数字?它甚至不知道它的度数!就像“object.rotation,请等于我选择的数字!”一样简单!