如何在 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 似乎对创建的“重复”动作没有任何影响——我曾预计它会调整“序列”动作内的“延迟时间”动作的持续时间,但它没有出现去做这个。
我还尝试基于 IntervalAction 创建自己的自定义操作,但惨遭失败。