这个系统让我很困惑。我正在转动一个炮塔面对一个敌人的精灵,我用弧度得到角度:
float angleRadians = atanf(yDifference / xDifference);
float angleDegrees = CC_RADIANS_TO_DEGREES(angleRadians);
这很酷,现在我把敌人放在几个位置,看看它是如何在DEGREES中绘制角度的:
T =炮塔
-45 90 45
-0 T 0
45 -90 -45
炮塔右上角的角度将与敌人左下角的角度相同,因此我必须有某种形式的条件来区分2.这不会除了cocos2d的旋转角度是这样的事实之外,我们很难:
45 90 135
0 T +/-180
-45 -90 -135
如何将我在开始时计算的角度转换为使用上述系统正确旋转炮塔,我该怎么做?
答案 0 :(得分:6)
如果您使用:
float angleRadians = atan2f(yDifference, xDifference);
这应该以弧度返回一个角度,该角度在[-pi,pi]范围内。 这应该解决你的问题。