CCSpawnで複数アクションを動かし、片方だけ止めようとしたら失敗した話
複数アクションを動かして、途中で片方だけ中断したいと思い、次のコードを書きました。
CCMoveBy *mb = CCMoveBy::create(0.15f, ccp(30.0f, 0.0f)); CCFadeTo *ft = CCFadeTo::create(0.15f, 225); ft->setTag(1); CCSpawn *sp = CCSpawn::createWithTwoActions(mb, ft); runAction(sp);
別の場所で
stopActionByTag(1);
CCFadeToのアクションだけ止めようとしたのですが、うまく行かず。
色々調べてみた結果、どうも片方だけ止める場合はCCSpawnでアクションを合成してはいけない模様。
CCMoveBy *mb = CCMoveBy::create(0.15f, ccp(30.0f, 0.0f)); CCFadeTo *ft = CCFadeTo::create(0.15f, 225); ft->setTag(1); runAction(mb); runAction(ft);
別の場所で
stopActionByTag(1);
これで無事止まってくれました。