2013-03-20 5 views
0

У меня есть массив спрайтов. Я хочу пройти через массив и рассказать каждому спириту перемещаться на определенном расстоянии под случайным углом и постепенно исчезать. Предпочтительно с ослаблением. Есть ли способ настроить последовательность для этого? Можете ли вы иметь изменяемую последовательность, в которой вы можете добавлять действия по мере прохождения цикла через массив спрайтов, а затем запускать последовательность, как только вы закончите, добавив все действия?Последовательность действий в Cocos2d

+0

Вы можете захотеть взглянуть на функциональность системы частиц в cocos2d. Это похоже на то, что вы пытаетесь построить нечто, что может уже существовать. – dqhendricks

ответ

2

Я не понимаю ваш вопрос так хорошо, но, возможно, этот пример может помочь вам:

CCArray *spritesArray; //array with sprites 

float timeToMove = 1.0; 
float timeToRotate = 1.0; 
float timeToFadeOut = 1.0; 
CGPoint initialMovePos = CGPointMake(100, 100); 

for (int i = 0; i<[spritesArray count]; i++) { 
    id moveDistance; 
    if (i == 0) { 
     moveDistance = [CCMoveTo actionWithDuration:timeToMove position:initialMovePos]; 
    }else{ 
     CGPoint lastSpritePos = ((CCSprite *)[spritesArray objectAtIndex:(i-1)]).position; 
     moveDistance = [CCMoveTo actionWithDuration:timeToMove position:ccpAdd(lastSpritePos, CGPointMake(10, 10))]; 
    } 

    float angleToRotate = random()%360; 
    id rotateAction = [CCRotateTo actionWithDuration:timeToRotate angle:angleToRotate]; 
    id fadeOutAction = [CCFadeOut actionWithDuration:timeToFadeOut]; 

    CCSprite *sprite = [spritesArray objectAtIndex:i]; 

    [sprite runAction:[CCSpawn actions:moveDistance,rotateAction,fadeOutAction, nil]]; 
} 
Смежные вопросы