Tho*_*mas 4 objective-c ccsprite
我正在使用CCSprite带有一些其他CCSprite对象作为孩子添加,我正在使用的其他动画(缩放和旋转)工作得很好,孩子也是动画.但是当我使用时CCFadeOut,它只会淡化父母.
我读过,淡出不适用于孩子们.除了迭代每个孩子并在每个孩子上调用淡出之外,还有什么方法吗?
这个答案被Gregory Johnson答案淘汰了
好吧,我想你的选择是(从最简单到复杂):
1)只是进入图书馆的CCSprite课堂cocos2d,然后破解它.(<3开源).(不推荐).
-(void) setOpacity:(GLubyte) anOpacity
{
opacity_ = anOpacity;
// special opacity for premultiplied textures
if( opacityModifyRGB_ )
[self setColor: colorUnmodified_];
[self updateColor];
for (id<CCRGBAProtocol> child in children ) {
// You should check if child responds to selector or conforms to CCRGBAProtocol.
[child setOpacity:opacity];
}
}
Run Code Online (Sandbox Code Playgroud)
2)与上述相同的溶液,除了子类CCSprite来MyCCSprite,并从它继承的代替CCSprite.最后,setOpacity:在新类中覆盖:
- (void) setOpacity:(GLubyte)opacity
{
[super setOpacity:opacity];
for(id<CCRGBAProtocol> child in children) {
[child setOpacity:opacity];
}
}
Run Code Online (Sandbox Code Playgroud)
3)通过迭代CCFade对父项和子项运行操作.(傻,如果你问我).
重要提示:请随便请注意,这opacity是该物业的财产CCRGBAProtocol.并非所有CCNode课程都有.所以,请务必记住这一点.
参考文献: