insert demora de time con cocos2d

Estoy tratando de agregar varias tags que aparecen secuencialmente con un retraso de time entre cada una. Las tags mostrarán 0 o 1 y el valor se calculará aleatoriamente. Estoy ejecutando el siguiente código:

for (int i = 0; i < 6; i++) { NSString *cowryString; int prob = arc4random()%10; if (prob > 4) { count++; cowryString = @"1"; } else { cowryString = @"0"; } [self runAction:[CCSequence actions:[CCDelayTime actionWithDuration:0.2] ,[CCCallFuncND actionWithTarget:self selector:@selector(cowryAppearWithString:data:) data:cowryString], nil]]; } 

el método que hace que aparezcan las tags es este:

 -(void)cowryAppearWithString:(id)sender data:(NSString *)string { CCLabelTTF *clabel = [CCLabelTTF labelWithString:string fontName:@"arial" fontSize:70]; CGSize screenSize = [[CCDirector shanetworkingDirector] winSize]; clabel.position = ccp(200.0+([cowries count]*50),screenSize.height/2); id fadeIn = [CCFadeIn actionWithDuration:0.5]; [clabel runAction:fadeIn]; [cowries addObject:clabel]; [self addChild:clabel]; } 

El problema con este código es que todas las tags aparecen en el mismo momento con el mismo retraso. Entiendo que si uso [CCDelayTime actionWithDuration:0.2*i] el código funcionará. Pero el problema es que también podría necesitar iterar todo este ciclo y hacer que las tags aparezcan nuevamente después de que aparecieron por primera vez. ¿Cómo es posible que aparezcan acciones con retraso y las acciones no siempre sigan el mismo order o iteraciones?

Quizás no entendí realmente lo que quieres hacer. Pero si necesita un cierto control cuando aparecen sus tags (para iterar algo) haga algo como esto:

 -(void) callback { static int counter = 0; //create your label and label action here // iterate through your labels if requinetworking counter++; if (counter < 6) { double time = 0.2; id delay = [CCDelayTime actionWithDuration: time]; id callbackAction = [CCCallFunc actionWithTarget: self selector: @selector(callback)]; id sequence = [CCSequence actions: delay, callbackAction, nil]; [self runAction: sequence]; } else { //calculate the result and run callback again if requinetworking //don't forget to write counter = 0; if you want to make a new throw } } 

El problema es que están progtwigndo todas las acciones para disparar al mismo time.

Cambiando

  [self runAction:[CCSequence actions:[CCDelayTime actionWithDuration:0.2] ,[CCCallFuncND actionWithTarget:self selector:@selector(cowryAppearWithString:data:) data:cowryString], nil]]; 

para

  [self runAction:[CCSequence actions:[CCDelayTime actionWithDuration:0.2 * i] ,[CCCallFuncND actionWithTarget:self selector:@selector(cowryAppearWithString:data:) data:cowryString], nil]]; 

debe arreglar tu problema