2013-03-20 40 views
0

我有一組精靈。我想穿過陣列並告訴每個靈魂以一個隨機的角度移動一定的距離,然後淡出。最好用easing。有沒有辦法建立一個序列來做到這一點?你可以有一個可變序列,你可以在你通過sprite數組循環時添加動作,然後在完成所有動作之後運行序列?Cocos2d中的動作序列

+0

你可能要考慮的cocos2d的粒子系統功能。這聽起來像你正在試圖建立一些可能已經存在的東西。 – dqhendricks 2013-03-21 19:53:56

回答

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]]; 
}