今天在写个demo的时候意外发现了一个跟rotate相关的有趣的事情。
如果我们想要将一个物体旋转朝向另外一个物体的时候,一般都会采用如下的方法:
// 通过tan值求arctan来得到旋转角度
auto diff = objRotateToward->getPosition() - objRotated->getPosition();
float angleRadians = atanf((float)diff.y / (float)diff.x);
float cocosAngle = CC_RADIANS_TO_DEGREES(angleRadians);
// ---part1 begin---
if (diff.x < 0)
{
cocosAngle += 180;
}
// ---part1 end---
// ---part2 begin---
cocosAngle = -cocosAngle;