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

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


person soleil    schedule 20.03.2013    source источник
comment
Вы можете изучить функциональность системы частиц cocos2d. Звучит так, будто вы пытаетесь построить что-то, что, возможно, уже существует.   -  person dqhendricks    schedule 21.03.2013


Ответы (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]];
}
person busta117    schedule 21.03.2013