Cocos2d角度混乱

FBr*_*t87 3 iphone xcode objective-c cocos2d-iphone

这个系统让我很困惑.我正在旋转一个炮塔面对一个敌人的精灵,我得到弧度的角度:

float angleRadians = atanf(yDifference / xDifference);
float angleDegrees = CC_RADIANS_TO_DEGREES(angleRadians);
Run Code Online (Sandbox Code Playgroud)

这很酷,现在我把敌人放在几个位置,看看它是如何在DEGREES中绘制角度的:

T =炮塔

-45      90      45

-0        T       0

45       -90     -45
Run Code Online (Sandbox Code Playgroud)

炮塔的右上角的角度将与敌人左下角的角度相同,因此我必须有某种形式的条件来区分2.这不会很难除外因为cocos2d的旋转角度是这样的:

45      90        135

0       T       +/-180

-45    -90       -135 
Run Code Online (Sandbox Code Playgroud)

我需要做些什么才能将我在开始时计算出的角度转换为使用上述系统正确旋转炮塔?

Bri*_*man 6

如果您使用:

float angleRadians = atan2f(yDifference, xDifference);
Run Code Online (Sandbox Code Playgroud)

这应该以弧度返回一个角度,该角度在[-pi,pi]范围内.这应该解决你的问题.