Cocos2d 角度混淆

3

这个系统真的让我很困惑。我正在旋转炮塔以面对一个敌人精灵,我使用以下代码获取弧度角:

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 

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

1
如果您使用atan2f(yDifference, xDifference),将会获得更好的结果。 - Brian Coleman
1个回答

6
如果您正在使用:
float angleRadians = atan2f(yDifference, xDifference);

这应返回一个弧度角,范围在[-pi,pi]之间。

这将解决您的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接