Cocos2D で「コールバック」を実行できるカスタム アクションを作成するにはどうすればよいでしょうか。コールバックへの各呼び出しを最後の呼び出しよりも徐々に長くします (Cocos2D で既に提供されている EaseExponentialOut アクションに似たものを使用します)。
これに似たもの:(これは機能しません)
id sequence = [Sequence actions: [CallFunc actionWithTarget: self selector: @selector(spinTick)], [DelayTime actionWithDuration: 0.034f], nil];
id repeat = [Repeat actionWithAction: [sequence copy] times: 18];
id ease = [EaseExponentialOut actionWithAction: [repeat copy]];
[ease setDuration:4];
id play = [CallFunc actionWithTarget:self selector:@selector(play)];
[self runAction: [Sequence actions: [ease copy], [play copy], nil]];
上記のコードは、「シーケンス」全体を 18 回実行し、最後のシーケンスの最後で「再生」コールバックを実行します。
ただし、EaseExponentialOut は、作成された「repeat」アクションにまったく影響を与えていないようです。「sequence」アクション内の「DelayTime」アクションの期間を調整することを期待していましたが、表示されません。これをする。
また、IntervalAction に基づいて独自のカスタム アクションを作成しようとしましたが、惨めに失敗しました。