У меня есть простое 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 оператора журнала не будут завершены, верно?