2010-05-26 26 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];