Последовательность действий в Cocos2d

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

1 ответ

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

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]];
}
Другие вопросы по тегам