cocos2d-x-2.0.4中使用CocosBuilder创建动画注意的问题

转载请注明出处:csdn火木达人

CocosBuilder创建动画的解析类CCBAnimationManager。

描述:当你使用CocosBuilder创建2个或2个以上的动画,在运行程序的时候默认的执行一个动画,如果你在这个动画执行完的回调方法中

completedAnimationSequenceNamed在执行另外的一个动画,在另一个动画执行完的时候就会报错。

原因:在执行第一个动画完的时候的回调方法是

void CCBAnimationManager::sequenceCompleted()
{
    if (mDelegate)
    {
        mDelegate->completedAnimationSequenceNamed(mRunningSequence->getName());
    }
    
    int nextSeqId = mRunningSequence->getChainedSequenceId();
    mRunningSequence = NULL;
    
    if (nextSeqId != -1)
    {
        runAnimations(nextSeqId, 0);
    }
}

你相当于这个方法的 mDelegate ->completedAnimationSequenceNamed (mRunningSequence ->getName ()); 处执行你的第二个动画,接着后面就会把当前的mRunningSequence置空,在执行完第二个动画之后又会回到sequenceCompleted函数,这时mDelegate ->completedAnimationSequenceNamed (mRunningSequence ->getName ());这个方法还会执行,但是mRunningSequence已经是NULL了,这个时候就会崩溃。

暂时的解决办法:可以给一个CCNode执行一个CCSequence的动作,CCSequence的第一个动作是CCDelayTime,第二个是一个CCCallFunc,在CCCallFunc中播放第二个动画。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值