启动多个Sprite的Cocos2d动画的最佳方法是什么?

时间:2010-09-08 16:41:50

标签: iphone cocos2d-iphone

我有一个包含CCSprite对象的数组randomAlphabets。我需要在这些对象上开始动画。 randomAlphabets数组(NSMutable)最多可包含4个元素。我正在运行一个循环,然后开始动画。这是正确的方法吗?

-(void) startAnimation:(CCSprite *) sprite
{

    [self generateRandomCoordinates]; 

    id actionMove = [CCMoveTo actionWithDuration:3.0 position:ccp(x,y)];
    id actionRotate = [CCRotateBy actionWithDuration:0.0 angle:rotateBy]; 

    id actionMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(finishedMoving:)]; 

    [sprite runAction:[CCSequence actions:actionMove,actionRotate, actionMoveDone, nil]];

}

-(void) addAlphabetsOnScreen 
{
    for (int i=0; i<=randomAlphabets.count -1; i++) {

        CCSprite *sprite = [randomAlphabets objectAtIndex:i]; 

        [self generateRandomCoordinates];       

        sprite.position = ccp(x,y); 
        [self addChild:sprite]; 

        [self startAnimation:sprite]; 
    }

}

1 个答案:

答案 0 :(得分:2)

当然,为什么不呢?

如果性能问题或精灵没有同时开始他们的动作,你可能想要在一个步骤(可能在加载关卡后)为每个精灵“准备”序列,然后在另一个步骤中将它们全部踢掉。同时开始的4个精灵似乎并不太难。