大神来帮忙看看 下面两端代码为什么执行的效果是不一样的

代码1: -->cardA先缩小,然后 cardA和cardB一起消失

                   FadeOut* fd_out=FadeOut::create(0.25);//动画1 降低卡片透明度
                   ScaleTo* sl_to=ScaleTo::create(0.25, 0.25);//动画2 缩小卡片

                
                Spawn* sp=Spawn::create(fd_out,sl_to, NULL);
                
                //执行序列--顺序执行    Sequence* sequence;
                
                
                 cardA->runAction(Sequence::create(sp,CallFunc::create([&,cardA](){
                 cardA->removeFromParent();
                 }), NULL));
                 
                 cardB->runAction(Sequence::create(sp,CallFunc::create([&,cardB](){
                 cardB->removeFromParent();
                 }), NULL));

代码2:–>cardA和cardB一起缩小,然后一起消失
cardA->runAction(Sequence::create(Spawn::create(FadeOut::create(0.25),ScaleTo::create(0.25, 0.25), NULL),CallFunc::create(cardA{
cardA->removeFromParent();
}), NULL));

                cardB->runAction(Sequence::create(Spawn::create(FadeOut::create(0.25),ScaleTo::create(0.25, 0.25), NULL),CallFunc::create([cardB](){
                    cardB->removeFromParent();
                }), NULL));

同一个Action作用到不同的对象上,会引起问题,试着用 clone

参考新文档:http://cocos2d-x.org/docs/cocos2d-x/zh/actions/sequence_internals.html?h=clone

代码1中的sp不能这么用,要clone sp:clone

1赞

谢谢大家
我晚上回去试试
搞定之后把 使用clone以后的代码贴出来 嘿嘿

1赞

代码整理出来了,再次谢谢大家。

                FadeOut* fd_out=FadeOut::create(0.25);//动画1 降低卡片透明度

                ScaleTo* sl_to=ScaleTo::create(0.25, 0.25);//动画2 缩小卡片

                
                Spawn* sp=Spawn::create(fd_out,sl_to, NULL);
                
                Spawn* sp1=sp->clone();
                //执行序列--顺序执行    Sequence* sequence;
                
                
                 cardA->runAction(Sequence::create(sp,CallFunc::create([&,cardA](){
                 cardA->removeFromParent();
                 }), NULL));
                 
                 cardB->runAction(Sequence::create(sp1,CallFunc::create([&,cardB](){
                 cardB->removeFromParent();
                 }), NULL));
1赞