Actionに他のターゲットのアクションを混ぜて実行する
Cocos2d-xで、例えば
スプライト1を指定の座標に移動
↓
スプライト2を指定の座標に移動
↓
スプライト1をフェードアウト
のように、他のターゲットのActionを混ぜて実行する方法のメモ。
今回使用したバージョン
- Cocos2d-x 3.2
そんなに難しくなく、runActionを実行する以外のノードではTargetedActionを使うだけでいけそうです。
たとえば上の例であれば
sprite1->runAction(Sequence::create(MoveTo::create(0.5f,Vec2(100,100)), TargetedAction::create(sprite2,MoveTo::create(0.5f,Vec2(200,200))), FadeIn::create(0.5f), NULL));
CallFuncNなどを使った処理もできます。
sprite1->runAction(Sequence::create(TargetedAction::create(sprite2, FadeTo::create(0.5f,100)), CallFunc::create([&]() { // なにか処理を実行 }), DelayTime::create(1.5f), TargetedAction::create(sprite2, FadeOut::create(0.5f)), TargetedAction::create(sprite2,CallFuncN::create([](Node *n) { n->removeFromParentAndCleanup(true); })), NULL));