Проблема CCSprite Aniamtion: движение по петле - [вход с левого выхода через правый] делает эти действия навсегда - PullRequest
0 голосов
/ 20 октября 2010

Вот мой код, я пытался ...

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

это перемещение персонажа за пределы экрана и не повторная инициализация в начальную позицию.

1 Ответ

1 голос
/ 28 декабря 2010

Выглядит так, как будто вы хотите, чтобы он появлялся слева, выходил справа, снова появлялся слева и т. Д., И т. Д.

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

Это будет «цикл навсегда» (из-за использования «CCRepeatForever»), в результате чего объект персонажа переместится из своей исходной начальной позиции в крайний правый угол экрана (с использованием математики ccp (), которую вы уже применяли) , затем сразу же после того, как он «мгновенно» (из-за продолжительности 0 с) вернется в исходное исходное положение, а затем повторите ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...