2010-05-26 3 views
0

У меня есть два логотипа, которые я хочу зайти друг за другом.iPhone: Cocos2d как сделать последовательность

Я хотел бы использовать CCFadeIn и CCFadeOut.

У меня есть логотип1, а затем я хочу его в CCFadeIn, тогда я хочу, чтобы он оставался на 2 секунды, затем заставьте его исчезать с помощью CCFadeOut, а затем сделайте Logo2 CCFadeIn в течение 1 секунды, оставайтесь на 2 секунды, а затем идите в течение 1 секунды с CCFadeOut.

Как я это сделаю, я не совсем уверен. Кажется, я не могу найти способ сделать способ CCAction одним из способов (скажем, -finishedFadingInLogo1 :), поэтому я не знаю, как это сделать.

Любые идеи?

ответ

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

Nice !! Он работает, спасибо. : D –

+2

Совет: лучшее форматирование поможет проиллюстрировать точку. Лично я также не буду вводить все действия в строку последовательности, вместо этого создавайте локальные переменные, которые содержат каждое действие. Делает гораздо лучше читаемый (и поддерживаемый) код. – LearnCocos2D

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]; 
Смежные вопросы