Cocos2d iphone Cocos2d 2.0-更改CCO图层的比例

Cocos2d iphone Cocos2d 2.0-更改CCO图层的比例,cocos2d-iphone,Cocos2d Iphone,我有一个CCLayer类(是的,它必须是CCLayer,而不是CCSprite),它有子CCSprite。我需要更改该层的不透明度和比例,换句话说,我必须更改该层所有子层的不透明度和比例 今天我学到了我可以扩展CClayer类,用它来处理孩子们的不透明性 #import "CCLayer+Opaque.h" @implementation CCLayer (CCLayer_Opaque) // Set the opacity of all of our children that suppor

我有一个CCLayer类(是的,它必须是CCLayer,而不是CCSprite),它有子CCSprite。我需要更改该层的不透明度和比例,换句话说,我必须更改该层所有子层的不透明度和比例

今天我学到了我可以扩展CClayer类,用它来处理孩子们的不透明性

#import "CCLayer+Opaque.h"

@implementation CCLayer (CCLayer_Opaque)
// Set the opacity of all of our children that support it
-(void) setOpacity: (GLubyte) opacity
{
    for( CCNode *node in [self children] )
    {
        if( [node conformsToProtocol:@protocol( CCRGBAProtocol)] )
        {
            [(id<CCRGBAProtocol>) node setOpacity: opacity];
        }
    }
}
- (GLubyte)opacity {
    for (CCNode *node in [self children]) {
        if ([node conformsToProtocol:@protocol(CCRGBAProtocol)]) {
            return [(id<CCRGBAProtocol>)node opacity];
        }
    }
    return 255;
}
@end
要处理规模,请使用相同的想法,但也可以查看消息找到多个名为“规模”的方法

在resume中:如何扩展CCLayer类以使CCLayer的所有子级更改比例或不透明度


谢谢,我发现了这个问题。为了读取或设置不透明度,我必须将类强制转换为CClayer对象

例如:

[(CCLayer*)obj setScale:0.5f];

现在它正在工作。谢谢。

您的不透明度比例实现是否只返回第一个子项的不透明度/比例?这是故意的吗?是的,因为当我将所有子对象的所有不透明度都更改为相同的值时,我只需要返回一个,就可以知道不透明度的大小。
[(CCLayer*)obj setScale:0.5f];