/ / CCSprite Aniamtion problem: Loop movement - [wejdź od lewego wyjścia przez prawe] wykonaj te działania na zawsze - iphone, animacja, cocos2d-iphone

CCSprite Aniamtion problem: Loop movement - [wejdź od lewego wyjścia przez prawe] wykonaj te działania na zawsze - iphone, animacja, cocos2d-iphone

Oto mój kod, próbowałem-

-(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);
}

przeniesienie postaci z ekranu i nie reinicjowanie do pozycji początkowej.

Odpowiedzi:

1 dla odpowiedzi № 1

Wygląda na to, że chcesz, aby pojawił się po lewej stronie, zszedł z prawej strony, pojawi się ponownie z lewej strony itd. Itd ...

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]];

To będzie "pętla na zawsze" (z powodu użycia"CCRepeatForever"), powodując, że obiekt znaku przechodzi z pierwotnej pozycji początkowej na skrajną prawą stronę ekranu (używając matematyki ccp (), którą już stosowałeś), a następnie natychmiast po tym, jak "przeniesie się natychmiast" (z powodu Czas trwania 0s) z powrotem do oryginalnej pozycji początkowej, a następnie powtórz ...