Как вы заказываете анимацию спрайта один за другим в cocos2d? - PullRequest
0 голосов
/ 18 марта 2010

У меня есть два спрайта. Оба должны оживить. Но sprite1 должен анимировать сначала, и после завершения анимации sprite1, анимация sprite2 должна начаться. Можно ли сказать спрайту, чтобы он запускался из определенного времени и заканчивался в определенное время? Это мои проблемы. Пожалуйста, объясните, как я могу это сделать. Спасибо.

1 Ответ

2 голосов
/ 18 марта 2010

Один из самых простых способов сделать это - через CCActions, в частности, с помощью действия CCCallFunc вызвать метод в вашем коде, чтобы запустить анимацию sprite2, как только анимация sprite1 завершится. Затем вы используете CCSequence для создания последовательности действий CCAnimate, а затем CCCallFunc.

// Lets say you have this as the CCAnimation for Sprite1
CCAnimation *sprite1Animation = [CCAnimation …]…

// then you setup the animate action:
// Suppose you have a method called -(void)startSprite2Animation {} which starts the sprite2 animation :-)

id animateAction = [CCAnimate actionWithAnimation:sprite1Animation restoreOriginalFrame:NO];
id callSprite2Animation = [CCCallFunc ctionWithTarget:self selector:@selector(startSprite2Animation)];
id animateAndActionSequence =  [CCSequence actions: animateAction, callSprite2Animation,nil];

[sprite1 stopAllActions]; // If you have actions running
[sprite1 runAction:animateAndActionSequence];

// See more on Cocos2D actions here: http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:actions
...