Cocos2d-x提供了一中根据球面坐标轨迹旋转的方式CCOrbitCamera
CC_DEPRECATED_ATTRIBUTE static CCOrbitCamera* actionWithDuration(float t, float radius, float deltaRadius, float angleZ, float deltaAngleZ, float angleX, float deltaAngleX);
参数分别为旋转的时间,起始半径,半径差,起始z角,旋转z角差,起始x角,旋转x角差
CCActionInterval* orbit1 = CCOrbitCamera::create(2,1, 0, 0, 180, 0, 0); CCFiniteTimeAction* action1 = CCSequence::create( orbit1, orbit1->reverse(), NULL); CCActionInterval* orbit2 = CCOrbitCamera::create(2,1, 0, 0, 180, -45, 0); CCFiniteTimeAction* action2 = CCSequence::create( orbit2, orbit2->reverse(), NULL); CCActionInterval* orbit3 = CCOrbitCamera::create(2,1, 0, 0, 180, 90, 0); CCFiniteTimeAction* action3 = CCSequence::create( orbit3, orbit3->reverse(), NULL); m_kathia->runAction(CCRepeatForever::create((CCActionInterval*)action1)); m_tamara->runAction(CCRepeatForever::create((CCActionInterval*)action2)); m_grossini->runAction(CCRepeatForever::create((CCActionInterval*)action3));