2010-10-20 9 views
0

Voici mon code, je suis trying-problème CCSprite aniamtion: boucle movement- [entrer de la sortie gauche par droite] Pour ce faire, des actions pour toujours

-(void) animatedMove:(CCSprite *)character 
{ 
    ccTime actualDuration = 10; 
    id actionMove = [CCMoveBy actionWithDuration:actualDuration 
             position:ccp(screen_width+50, character.position.y)]; 
    id actionBack = [CCMoveBy actionWithDuration:1 
             position:ccp(50, screen_height/2)]; 
    id actionFinished = [CCCallFuncN actionWithTarget:self 
              selector:@selector(animatedMoveFinished:)]; 
    [character runAction:[CCSequence actions:actionMove,actionBack,actionFinished,nil]]; 
} 

-(void) animatedMoveFinished:(id)sender 
{ 
    CCSprite *character = (CCSprite *)sender; 
    [self animatedMove:character]; 

    NSLog(@"(%.2f, %.2f", character.position.x, character.position.y); 
} 

son déplacement le caractère hors de l'écran et non à réinitialisant la position de départ.

Répondre

1

On dirait que vous voulez qu'il apparaisse sur la gauche, quitter le droit, ressurgir de la gauche, etc, etc ...

ccTime actualDuration = 10; 
id actionMoveBy = [CCMoveBy actionWithDuration:actualDuration 
    position:ccp(screen_width+50, character.position.y]; 
id actionMoveTo = [CCMoveTo actionWithDuration: 0.0f position: character.position]; 
id actionSequence = [CCSequence actions: actionMoveBy, actionMoveTo, nil]; 
[character runAction: [CCRepeatForever actionWithAction: actionSequence]]; 

Ce sera « boucle pour toujours » (en raison de l'utilisation 'CCRepeatForever'), amenant l'objet caractère à passer de sa position de départ originale à l'extrême droite de l'écran (en utilisant le calcul de ccp() que vous appliquiez déjà), puis immédiatement après il va "bouger instantanément" (en raison de 0s durée) revenir à sa position de départ d'origine, puis répétez ...