2012-02-15 123 views
1

我創建了一個精靈,在精靈內部我有一個這樣的標籤。Cocos2D iPhone - 淡出精靈,留下碎片

CCLabelTTF *myLabel = [CCLabelTTF 
         labelWithString:text 
         dimensions:CGSizeMake(mySpriteWidth*0.9, mySpriteHeight*0.9) 
         alignment:UITextAlignmentCenter 
         fontName:@"Helvetica Neue" fontSize:20.0f]; 

[myLabel setPosition: CGPointMake((mySpriteWidth/2.0f),(mySpriteHeight/2.0f))]; 
[mySprite addChild: myLabel]; 

正如您所看到的標籤是mySprite的孩子。

然後我淡出精靈使用這個動作

id fadeOut = [CCFadeOut actionWithDuration:0.4]; 

的精靈淡出正確,但標籤仍然存在,傲慢地看着我......

這是一個錯誤還是我遺漏了什麼?由於


我用做褪色的代碼是這樣的:

CCSequence *sequence =[CCSequence actions: 
          fadeIn, 
          [CCDelayTime actionWithDuration:2.5], 
          fadeOut, 
          nil]; 


    [mySprite runAction:sequence]; 
// [myLabel runAction:sequence]; 

加入行動的標籤,使得它消失,但隨後的精靈在屏幕上顯示... :(

回答

0

你應該去掉精靈褪色完成後,當它,如果你不打算再次使用它。或者如果你將切換其可見性將被刪除。

我不是100%肯定,如果淡出w不適應其內部觀點。它會影響從CCRGBAProtocol

CCFadeout reference

繼承至少應該讓你在你的問題的對象。如果你希望標籤淡出,你也可以使用getChildByTag來訪問標籤,以使其具有淡入淡出效果。

但是,您需要創建一個新的淡入淡出效果,在cocos中實現Actions的方式是2個對象可以運行相同的操作,而後者會運行。

+0

據我所知,它應該會影響標籤,因爲標籤是精靈內的子對象...我對標籤做了淡入淡出效果。現在標籤去,精靈繼續... – SpaceDog 2012-02-15 02:17:46

+0

你可以添加代碼,你做淡入淡出效果plz – 2012-02-15 02:19:44

+0

我已經添加了代碼 – SpaceDog 2012-02-15 02:23:35