在cocos2dx中,默认的CCLayer背景是黑色的,有些时候需要特殊的Layer,所以cocos2dx中提供了这两种Layer


CCLayerColor是可以改变背景色的Layer,示例如下:

CCSize size = __winSize;
CCLayerColor* layer = CCLayerColor::create(ccc4(255, 0, 0, 255), size.width/2, size.height/2);
addChild(layer);


通过create函数创建层,并把它放到父层,效果如下:

cocos2dx CCLayerColor和CCLayerColor_分割线


create是一个重载函数,有各种重载方式:

static CCLayerColor* create();

/** creates a CCLayer with color, width and height in Points */
static CCLayerColor * create(const ccColor4B& color, GLfloat width, GLfloat height);
/** creates a CCLayer with color. Width and height are the window size. */
static CCLayerColor * create(const ccColor4B& color);


有不带参数,或者只带一个颜色参数,或者带颜色,宽度,高度参数,我们这里用了最复杂的函数。


颜色层可以修改的属性不多,主要是透明度,增加透明度后再看效果:

CCSprite* sprite = CCSprite::create("Images/blocks.png");
addChild(sprite);
sprite->setPosition(VisibleRect::center());

CCSize size = __winSize;
CCLayerColor* layer = CCLayerColor::create(ccc4(255, 0, 0, 255), size.width/2, size.height/2);
addChild(layer);
layer->setOpacity(128);


上面的代码,为了更好的表现透明度,在颜色层后加了个精灵,效果如下:

cocos2dx CCLayerColor和CCLayerColor_分割线_02


---------------------分割线-----------------------

下面说CCLayerGradient,它是有渐变颜色效果的层,例子如下:

CCLayerGradient* layer2 = CCLayerGradient::create(ccc4(255, 0, 0, 255), ccc4(0, 0, 255, 255));
addChild(layer2);


cocos2dx CCLayerColor和CCLayerColor_分割线_03