0

我有一个我试图重复的序列,并随着重复的每次出现改变延迟时间......就像:

__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 的实例实际上已正确设置为其先前值的一半,但在单步执行代码时,似乎只要控制到达其中一个基础class' (CCActionInterval) 方法,例如 step 或 update:,duration_ ivar 恢复到原始值(myDelay 设置的值)。

我花了很多时间浏览 cocos 代码,试图弄清楚为什么会这样,但最终决定放弃,看看这里是否有人可以帮助我。也许有更好的方法来做我想做的事情?

4

1 回答 1

0

你在这里做的是:调用一个函数,等待一段时间(延迟),运行一个块来改变已经运行的动作的等待时间。

你需要用到的是CCSpeed,给它添加延迟动作,并保留对CCSpeed的引用,这样你就可以从序列之外修改速度。

于 2013-02-24T08:25:20.133 回答