我有一个我试图重复的序列,并且每次重复出现都会改变延迟时间......如下:
__block CCDelayTime *delayTime = [CCDelayTime actionWithDuration:myDelay];
[CCRepeat actionWithAction:[CCSequence actions:
[CCCallFunc actionWithTarget:self selector:@selector(doSomething)],
delayTime,
[CCCallBlock actionWithBlock:^{
delayTime.duration = delayTime.duration / 2
}....
我得不到真正快速的地方..部署CCDelayTime的duration_ivar实例实际上正确地设置为其先前值的一半的事实,当单步执行代码时,看起来一旦控制到达一个对于基类'(CCActionInterval)方法(如step或update :),duration_ivar返回原始值(myDelay设置为)。
我花了很多时间浏览cocos代码,试图弄清楚为什么会这样,但最终决定放弃,看看这里是否有人可以帮助我。也许有一种更好的方法来做我想要做的事情?
答案 0 :(得分:0)
你在这里做的是:调用一个函数,等待一段时间(延迟),运行一个块来改变已经运行的动作的等待时间。
您需要使用的是CCSpeed,向其添加延迟操作,并保留对CCSpeed的引用,以便您可以从 outside 序列中修改速度。