代码之家  ›  专栏  ›  技术社区  ›  azamsharp

启动多个精灵的cocos2d动画的最佳方法是什么?

  •  0
  • azamsharp  · 技术社区  · 15 年前

    我有一个包含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 回复  |  直到 15 年前
        1
  •  2
  •   Toastor    15 年前

    当然,为什么不呢?

    如果有性能问题或者精灵不能同时启动动画,你可能需要在一个步骤(可能在加载级别之后)为每个精灵“准备”序列,然后在另一个步骤中将它们全部踢出。不过,同时开始的4个精灵似乎并不难。