Cocos2d iphone 不完成

Cocos2d iphone 不完成,cocos2d-iphone,Cocos2d Iphone,我有一个简单的CCRotateBy动作序列;然后是对另一个方法的调用,该方法确认CCRotateBy已完成(否则,如果CCRotateBy未完成,CCCallFunc将不会按顺序被调用): CCLog语句确认应该发生旋转,并且旋转角度不是零(它始终是一个整数)。这些日志还显示CCSequence正在完成。但是,精灵不会在屏幕上旋转。我花了好几个小时研究这段代码,试图找出可能出现的问题。如果精灵的操作被停止,那么这3条日志语句将不会完成,对吗?快速查看,但您没有在序列中调用CCRotateBy。“

我有一个简单的
CCRotateBy
动作序列;然后是对另一个方法的调用,该方法确认CCRotateBy已完成(否则,如果CCRotateBy未完成,
CCCallFunc
将不会按顺序被调用):


CCLog语句确认应该发生旋转,并且旋转角度不是零(它始终是一个整数)。这些日志还显示
CCSequence
正在完成。但是,精灵不会在屏幕上旋转。我花了好几个小时研究这段代码,试图找出可能出现的问题。如果精灵的操作被停止,那么这3条日志语句将不会完成,对吗?

快速查看,但您没有在序列中调用CCRotateBy。“第二个”操作不在顺序中。

正如@tassinari所说的,请尝试删除反弹功能

这来自cocos2dapi参考


抱歉,刚才在您的反弹操作中看到了它,可能在调试时删除了ease in/out。非常有用,谢谢,但不是问题的原因。我只使用了直线旋转操作,取消了减缓操作,但问题仍然存在,并且在调用correctRotation函数时是相同的?我只是在我的项目上测试了一个类似的代码,效果很好,所以问题可能在于调用函数的时候。您确定RotationMount>0吗?试着用一个固定的数字来确定。奇怪。。。嗯,过去也有过类似的一次,还有另一次间隔动作(当时是cocos版本99.4)。您是否尝试“摇晃”系统并尝试将CCRotateTo self.rotation+self.rotation安装?这为我修正了…我不知道CCSprite上有旋转属性;它不在类引用中。这应该是sprite的旋转度?与cocos中的大多数(所有?)对象一样,Ccsrite派生自具有旋转属性的CCNode。我刚刚做了一个快速测试,它是可设置的。另外(这听起来可能很傻)您是否验证self.isRunning是正确的?
-(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);    
}
Warning:
This action doesn't use a bijective function. Actions like Sequence might have an
unexpected result when used with this action.