iPhone: Cocos2d, как сделать последовательность - PullRequest
0 голосов
/ 26 мая 2010

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

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

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

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

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 30 июля 2010

Для лучшей читабельности ответ Колина переформатирован:

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];
4 голосов
/ 26 мая 2010

... где-то: ...

[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, которые принимают аргументы и тому подобное ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...