如何在Cocos2D中创建能够随时间执行“回调”的自定义操作,使每次调用回调的时间比上次调用的时间长(使用类似于已提供的EaseExponentialOut操作的内容)与Cocos2D。
类似的东西:(不起作用)
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次,然后在最后一个序列的末尾执行'play'回调。
然而,EaseExponentialOut似乎对创建的'repeat'动作没有任何影响 - 我曾预计它会在'sequence'动作中调整'DelayTime'动作的持续时间,但它似乎没有这样做。
我还尝试基于IntervalAction创建自己的自定义操作,但失败了。
答案 0 :(得分:2)
显然,上面的代码是有用的,只是我在持续时间中使用了时间。也没有必要使用“复制”,因为这些操作可以按原样使用。
如果我将时间从0.034增加到0.25以上,那么结果就更接近我希望看到的结果。现在我只需要使用持续时间的值来使它'恰到好处'。