基于曲线移动到相应位置,例子代码如下:

void MyActionCardinalSplineLayer::initLayer() {
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    CCSprite *sprite = CCSprite::create("blocks.png");
    sprite->setPosition(ccp(100, 300));
    this->addChild(sprite, 1);

    CCPointArray *arrayPoint = CCPointArray::create(4);
    arrayPoint->addControlPoint(ccp(100, 200));
    arrayPoint->addControlPoint(ccp(300, 100));
    arrayPoint->addControlPoint(ccp(100, 400));
    arrayPoint->addControlPoint(ccp(200, 200));
    CCActionInterval *forward = CCCardinalSplineBy::create(4, arrayPoint, 0);
    sprite->runAction(CCSequence::create(forward, forward->reverse(), NULL));
}