Я пытаюсь воспроизвести цикл анимации кадра навсегда, но после каждой игры я хотел бы отложить на некоторое время до следующего петля.Cocos2dx - воспроизведение анимации кадра навсегда, но пауза в течение нескольких секунд перед повторением
Вот конкретный код:
CCActionInterval *pAnimate = CCAnimate::create(m_pAnimationDebugSkill);
CCDelayTime *pDelayTime = CCDelayTime::create(3.0f);
CCRepeatForever *pRepeat = CCRepeatForever::create(CCSequence::createWithTwoActions(pAnimate, pDelayTime));
m_pSpriteDebugSkillAnimation->runAction(pRepeat);
Я ожидаю pAnimate играть, то pDelayTime удерживать в течение 3 секунд, затем pAnimate играть снова ... Но что происходит, pAnimate играет и повторяя навсегда ... pDelayTime не имеет никакого эффекта ...
У кого-нибудь есть идеи?
Вот полный код:
// Skill button animation
m_pSpriteDebugSkillAnimation = CCSprite::createWithSpriteFrame(
CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(s_szNameSpriteFrame[UI_BOARD_RUNES_ANIM_BTN_SKILL_0])
);
m_pSpriteDebugSkillAnimation->setAnchorPoint(ccp(0.5f, 0.5f));
INT iNumFrames = UI_BOARD_RUNES_ANIM_BTN_SKILL_END - UI_BOARD_RUNES_ANIM_BTN_SKILL_START + 1;
CCArray *pAnimSkill = CCArray::create();
for (INT i = 0; i < iNumFrames; i++) {
CCSpriteFrame *pFrame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(s_szNameSpriteFrame[UI_BOARD_RUNES_ANIM_BTN_SKILL_0+i]);
pAnimSkill->addObject(pFrame);
}
m_pAnimationDebugSkill = CCAnimation::createWithSpriteFrames(pAnimSkill, DEFAULT_TIME_ANIM);
m_pAnimationDebugSkill->setLoops(-1);
m_pAnimationDebugSkill->retain();
CCActionInterval *pAnimate = CCAnimate::create(m_pAnimationDebugSkill);
CCDelayTime *pDelayTime = CCDelayTime::create(3.0f);
CCRepeatForever *pRepeat = CCRepeatForever::create(CCSequence::createWithTwoActions(pAnimate, pDelayTime));
m_pSpriteDebugSkillAnimation->runAction(pRepeat);
CCSprite *pSpriteSkill = CCSprite::createWithSpriteFrame(
CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(s_szNameSpriteFrame[UI_BOARD_RUNES_BTN_SKILL])
);
FLOAT fSpriteSkillWidth = pSpriteSkill->boundingBox().size.width;
FLOAT fSpriteSkillHeight = pSpriteSkill->boundingBox().size.height;
m_pSpriteDebugSkillAnimation->setPosition(ccp(fSpriteSkillWidth/2.0f, fSpriteSkillHeight/2.0f));
pSpriteSkill->addChild(m_pSpriteDebugSkillAnimation);
//pSpriteSkill->setAnchorPoint(ccp(0.5f, 0.5f));
//pSpriteSkill->setPosition(ccp(fScreenHalfWidth, 1100.0f));
//this->addChild(pSpriteSkill);
m_pBtnDebugSkill = CCMenuItemSprite::create(pSpriteSkill, pSpriteSkill, pSpriteSkill, this, menu_selector(CGameScreen::onTouchSkillButton));
m_pBtnDebugSkill->setPosition(ccp(fScreenHalfWidth, 1100.0f));
m_pMenuRoot->addChild(m_pBtnDebugSkill);
Задержка места сначала, а затем после запуска анимации в последовательности. Он будет работать – Rama