【发布时间】:2014-02-01 20:01:00
【问题描述】:
好的,所以我有一个游戏,玩家(太空船)试图绕行星飞行,但如果它关闭,玩家的太空船就会转向行星。
所以我尝试使用:
float dx = [_player position].x - [planetNodes[i] position].x;
float dy = [_player position].y - [planetNodes[i] position].y;
double angleToTurn = (180.0 / M_PI) * atan2(dy, dx);
NSLog(@"Turn to: %f", angleToTurn);
_player.zRotation = angleToTurn;
这段代码放在场景的更新方法中。每当玩家离地球太近时,它就会开始旋转,因为我使用的是旋转方法。有没有像 setAngle 这样的方法?这样,每当调用更新时,它都会重置角度,并且实际上看起来玩家正在朝着地球移动。
【问题讨论】:
-
atan2 函数对我来说是关键。我不知道如何计算正坐标系所有象限的旋转。单独的 atan 是行不通的。
标签: ios sprite sprite-kit angle sknode