2010-05-26 45 views
0

我有两个标志,我希望彼此接踵而至。iPhone:Cocos2d如何制作一个序列

我想使用CCFadeIn和CCFadeOut。

我有Logo1,然后我想要它CCFadeIn,然后我希望它停留2秒,然后使它淡出使用CCFadeOut,然后使Logo2 CCFadeIn 1秒,停留2秒,然后去在1秒内用CCFadeOut离开。

我怎么会让这个我不完全确定。我似乎无法找到一种方法使CCAction触发一个方法(比方说, - finalFadingInLogo1 :),所以我不知道该怎么做。

任何想法?

回答

4

...某处...

[logo1 runAction: 
    [CCSequence actions: 
    [CCFadeIn actionWithDuration:SOMETIME], 
    [CCDelayTime actionWithDuration:2], 
    [CCFadeOut actionWithDuration:SOMEOTHERTIME], 
    [CCCallFunc actionWithTarget:SOMETARGET selector:@selector(finishedFadingInLogo1)], 
    nil 
    ] 
]; 

...

-(void)finishedFadingInLogo1 
{ 
    [logo2 runAction:blah, yada, nil]; 
} 

有意义吗?有类似CCCallFunc是采取指定参数和其他此类行动...

+0

尼斯!它的工作原理,谢谢。 :D – 2010-05-26 19:17:42

+2

提示:更好的格式将有助于说明这一点。就我个人而言,我也不会将所有动作都塞进序列行,而是创建保存每个动作的局部变量。使更好的可读(和可维护)代码。 – LearnCocos2D 2010-06-07 09:07:18

4

为了更好的可读性,科林的答案重新格式化:

id fadein = [CCFadeIn actionWithDuration:2]; 
id delay = [CCDelayTime actionWithDuration:2]; 
id fadeout = [CCFadeOut actionWithDuration:2]; 
id call = [CCCallFunc actionWithTarget:self selector:@selector(doneFading)]; 
CCSequence* sequence = [CCSequence actions:fadein, delay, fadeout, call, nil]; 
[aNode runAction:sequence];