I'm using a CCSprite
with a few other CCSprite
objects added as children, the other animations I'm using (scale and rotate) work great and the children are animated too. But when I'm using CCFadeOut
, it only fades the parent.
I've read that fadeout doesn't apply to the children. Is there any way other than iterating over every child and calling the fadeout on each of them?
This answer is rendered obsolete by Gregory Johnson Answer
Well, I guess your choices are (Ranked from simplest to complex):
1) Just go into the
CCSprite
class incocos2d
library, and hack it. (<3 open source). (not recommended).2) Same as the solution above, except subclass
CCSprite
toMyCCSprite
, and inherit from it instead ofCCSprite
. Finally, overridesetOpacity:
in the new class:3) Run the
CCFade
action on the parent and the children by iterating them. (silly, if you ask me).IMPORTANT: Just please, please, please keep in mind that
opacity
is a property of theCCRGBAProtocol
. Not allCCNode
classes have it. So, make sure you keep that in mind.References:
As of Cocos2d ver. 2.1, CCNodeRGBA has a "CascadeOpacity" BOOL property. Set it to YES on the parent CCSprite to fade out the children nodes as well as the parent.