改变Cocos2d中多个精灵的不透明度



我是iphone编程新手,我是从cocos2d开始的。我想知道是否有一种方法可以一次为多个精灵设置不透明度?我注意到CCLayer没有实现不透明度,并且不透明度似乎不会向下传播到CCSprite类的子类。

是否有更好的方法来做到这一点,而不是在自定义ccnode上重写setOpacity,并逐个迭代和设置不透明度?或者重写绘制并手动设置混合模式?

谢谢!

你可以循环遍历场景中的所有精灵,检查它们是否是你想要的精灵,然后像这样设置它们的不透明度(假设你在创建精灵时将它们的标签设置为OPACITY_SPRITE_TAG)

for(CCSprite* sprite in [self children])
{
    if([sprite tag] == OPACITY_SPRITE_TAG)
    {
        [sprite setOpacity:NEW_OPACITY];
    }
}

你就不能通过你想要改变的精灵数组来增加吗?比如:

for(int i = 0; i < [myArray count]; i++){
CCSprite *mySprite = [myArray objectAtIndex:i];
[mySprite setOpacity:100];
}

最新更新