CCRotateBy не завершает - PullRequest
       6

CCRotateBy не завершает

0 голосов
/ 21 февраля 2012

У меня есть простое CCRotateBy действие в последовательности;за ним следует вызов другого метода, который подтверждает, что CCRotateBy завершен (в противном случае CCCallFunc не будет вызван в последовательности, если CCRotateBy не завершен):

-(void)correctRotation{
    if (self.rotationAmount){
    CCLOG(@"correcting rotation inside: %i",self.buildNum);
    CCRotateBy*second=[CCRotateBy actionWithDuration:1 angle:-self.rotationAmount];
    CCEaseBackInOut*bounce2=[CCEaseBackInOut actionWithAction:second];
    CCCallFunc*func=[CCCallFunc actionWithTarget:self selector:@selector(stabilize)];
    CCSequence*seq=[CCSequence actions:bounce2,func, nil];
    [self runAction:seq];
    }
}

-(void)stabilize{
        CCLOG(@"stabilize before rotation: %i for %i",self.rotationAmount,self.buildNum);
    self.rotationAmount=0;
        CCLOG(@"stabilize after rotation: %i for %i",self.rotationAmount,self.buildNum);    
}

Операторы CCLogподтверждение того, что должно происходить вращение и что угол поворота не равен нулю (это всегда целое число).Эти журналы также показывают, что CCSequence завершается.Однако спрайт не вращается на экране.Я часами пролил этот код, пытаясь понять, что может быть не так.Если действия спрайта были остановлены, то эти 3 оператора журнала не будут завершены, верно?

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Как говорит @tassinari, попробуйте удалить функцию bounce.

Это из справочника API cocos2d

http://www.cocos2d -iphone.org / api-ref / 1.1.0/interface_c_c_ease_back_in_out.html

Warning:
This action doesn't use a bijective function. Actions like Sequence might have an
unexpected result when used with this action.
0 голосов
/ 21 февраля 2012

Быстрый просмотр, но вы не вызываете CCRotateBy в своей последовательности.«Второе» действие не входит в последовательность.

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