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

时间:2011-07-25 00:18:51

标签: iphone objective-c cocos2d-iphone

我对iphone编程比较陌生,而且我一直在用cocos2d开始。我想知道是否有办法一次为多个精灵设置不透明度?我注意到CCLayer没有实现不透明度,并且不透明度似乎没有传播到类CCSprite的子节点。

有没有更好的方法来覆盖自定义ccnode上的setOpacity并迭代并单独设置不透明度?或者可能会覆盖绘图并手动设置混合模式?

谢谢!

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

难道你不能只增加你想要改变的精灵数组。类似的东西:

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