我在一個序列中有一個簡單的CCRotateBy
動作;它後面是另一個方法的調用它證實了CCRotateBy完成(否則,CCCallFunc
不會被調用的順序,如果CCRotateBy沒有完成):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個日誌語句就不會完成,對嗎?
怪......嗯,有過類似的一個過去與另一間隔動作(科科斯版本99.4的時候)。你是否試圖'搖動'系統並嘗試CCRotateTo self.rotation + self.rotationAmount?那爲我修好了... – YvesLeBorg 2012-02-21 04:50:46
我不知道CCSprite有一個旋轉屬性;它不在課堂參考中。這應該是精靈的旋轉角度? – johnbakers 2012-02-21 11:49:00
CCSprite像cocos中的大多數(所有?)對象都從具有旋轉屬性的CCNode派生。我只是做了一個快速測試,它是可以設置的。此外(這聽起來可能很愚蠢)你有沒有證實self.isRunning是真的? – YvesLeBorg 2012-02-21 13:40:56