Cocos2d iphone Cocos2d中的动作序列

Cocos2d iphone Cocos2d中的动作序列,cocos2d-iphone,ccsprite,ccaction,Cocos2d Iphone,Ccsprite,Ccaction,我有一排精灵。我想在阵列中循环,告诉每个灵魂以随机角度移动一定距离,并在移动过程中淡出。最好是放松。有没有办法设置一个序列来执行此操作?你能拥有一个可变序列吗?在这个序列中,你可以在精灵数组中循环添加动作,然后在添加完所有动作后运行该序列?我不太理解你的问题,但这个示例可能会帮助你: CCArray *spritesArray; //array with sprites float timeToMove = 1.0; float timeToRotate = 1.0; float timeTo

我有一排精灵。我想在阵列中循环,告诉每个灵魂以随机角度移动一定距离,并在移动过程中淡出。最好是放松。有没有办法设置一个序列来执行此操作?你能拥有一个可变序列吗?在这个序列中,你可以在精灵数组中循环添加动作,然后在添加完所有动作后运行该序列?

我不太理解你的问题,但这个示例可能会帮助你:

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]];
}
CCArray*精灵阵列//精灵阵
浮动时间移动=1.0;
浮动时间旋转=1.0;
浮动时间延迟=1.0;
CGPoint initialMovePos=CGPointMake(100100);

对于(int i=0;i)您可能想研究cocos2d的粒子系统功能。听起来您好像在尝试构建一些可能已经存在的东西。