2010-09-08 6 views
0

У меня есть массив randomAlphabets, который содержит объекты CCSprite. Мне нужно запустить анимацию на этих объектах. Массив RandomAlphabets (NSMutable) может содержать максимум 4 элемента. Я запускаю цикл, а затем запускаю анимацию. Правильно ли это?Каков наилучший способ начать анимацию Cocos2d из нескольких спрайтов?

-(void) startAnimation:(CCSprite *) sprite 
{ 

    [self generateRandomCoordinates]; 

    id actionMove = [CCMoveTo actionWithDuration:3.0 position:ccp(x,y)]; 
    id actionRotate = [CCRotateBy actionWithDuration:0.0 angle:rotateBy]; 

    id actionMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(finishedMoving:)]; 

    [sprite runAction:[CCSequence actions:actionMove,actionRotate, actionMoveDone, nil]]; 

} 

-(void) addAlphabetsOnScreen 
{ 
    for (int i=0; i<=randomAlphabets.count -1; i++) { 

     CCSprite *sprite = [randomAlphabets objectAtIndex:i]; 

     [self generateRandomCoordinates];  

     sprite.position = ccp(x,y); 
     [self addChild:sprite]; 

     [self startAnimation:sprite]; 
    } 

} 

ответ

2

Несомненно, почему бы и нет?

Если у вас есть проблемы с производительностью или спрайты, не запускающие их анимации одновременно, вы можете захотеть «подготовить» последовательности для каждого спрайта за один шаг (возможно, после загрузки уровня), а затем просто отбросить их все на другом шаге. 4 Спрайты, начинающиеся в то же время, кажутся не слишком жесткими.

Смежные вопросы