这个系统真的让我很困惑。我正在旋转炮塔以面对一个敌人精灵,我使用以下代码获取弧度角:
float angleRadians = atanf(yDifference / xDifference);
float angleDegrees = CC_RADIANS_TO_DEGREES(angleRadians);
太棒了,现在我将敌人放置在几个位置上,看看它在度数上如何计算角度:
T = 炮塔
-45 90 45
-0 T 0
45 -90 -45
敌人在炮塔右上方的角度与敌人在左下方的角度是相同的,因此我需要一些条件来区分这两者。这并不难,但 cocos2d 的旋转角度工作方式如下:
45 90 135
0 T +/-180
-45 -90 -135
我需要做什么才能将我在开始时计算的角度转换为使用上述系统正确旋转炮塔所需的角度?