2012-08-27 81 views
1

我正在制作一款纸牌游戏,我想逐一抽奖。卡必须分别向玩家和经销商一一处理。 在此过程中,现在我想添加已完成的卡片动画,但它一起发生。现在,我想使一个个动画 即一卡得那么开第二张牌一样,Cocos2d-x - 如何让等待第二个动画,直到一个动画完成?

我一直在使用CCArray0> addobj(CCSequence)试过......这里的方法是我的代码,但它不工作

m_AnimateCardArr = CCArray::create(4); 

for (int i = 0; i < 4; i++) { 

switch (i){ 

case 0: player->draw(card) 
    cardAnimation(player,card,500,200); 
    break; 
case 1: player->draw(card) 
    cardAnimation(player,card,550,200); 
    break; 
case 2: dealaer->draw(card) 
    cardAnimation(player,card,500,1000); 
    break; 
case 3 :dealaer->draw(card) 
    cardAnimation(player,card,550,1000); 
    break; 
} 

++mCount; 
} 

    void CardAnimation(Player* player,Card* card, CCPoint startPts,CCPoint endPts){ 

     // ,, some code 
    m_AnimateCardArr->addObject(CCSequence::create(spawn1,spawn2,finishAnimation,NULL)); 
    if(mCount>=4) 
     card->runAction(CCSequence::create(m_AnimateCardArr)); 
} 

只要mCount变为4我尝试运行行动,但它不工作

+0

要创建一个新的CCSequence功能*的通话*和运行定时器吗?我不熟悉2.0,但我想你应该从数组中获取CCSequence *并运行它,而不是使用数组创建新的。 –

+0

如果你只是想延迟,我想CCDelayTime和CCCallFunc可能会帮助你。 –

回答

0

您还可以使用调度程序是这样的:

this->schedule(schedule(SEL_SCHEDULE selector), 2.0f); 

SEL_SCHEDULE selector会是你需要的函数调用

2.0f是你要多少秒从CCArray延迟

相关问题