在执行某个行为动作的时候,有时候根据需求,可能需要暂停一段时间,然后继续执行,这个时候我们可以用到,CCDelayTime这个类,它是CCActionInterval的派生类。

好,现在我们来看一下如何创建一个延时的行为动作,代码如下:

void MyActionCCDelayTimeLayer::initLayer() {
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    CCSprite *spriteDelay = CCSprite::create("close.png");
    spriteDelay->setPosition(ccp(size.width / 2.0f, size.height / 2.0f));
    this->addChild(spriteDelay, 1);

    CCActionInterval *move = CCMoveBy::create(2, ccp( 400, 300));
    CCActionInterval *back = move->reverse();
    CCAction *action = CCRepeatForever::create(dynamic_cast<CCActionInterval *>(CCSequence::create(move, back, CCDelayTime::actionWithDuration(10), NULL)));
    spriteDelay->runAction(action);
}



已创建完成!,除此之外,我让该动作了不断(CCRepeatForevet)执行,隔10s继续执行一次。