1.CCLayerColor
当我们想创建一个单色得Layer层得时候,我们不需要用一张单色得背景图,因为引擎中有这这样一个CCLayerColor这样得一个类,它可以帮我们完成这样得效果。接下来来看一个例子:
1 CCLayerColor * layercolor = CCLayerColor::create(ccc4(240, 70, 100, 255), size.width, size.height);
2 layercolor->setCascadeColorEnabled(false);
3
4 layercolor->setPosition(ccp(0, 0));
5 this->addChild(layercolor, 0);
注意这里我没有设置AnchorPoint,因为不管你怎么设置,CCLayer都忽略了它得AnchorPoint,它的值始终都是ccp(0.5f, 0.5f).
运行后你就可以看到一张纯色背景得Layer.
2.CCLayerGradient
接下来用CCLayerGradient来创建带有两种颜色的layer,例子代码如下:
1 CCLayerGradient * layergradient = CCLayerGradient::create(ccc4(0, 0, 0, 255),
2 ccc4(255, 255, 255, 255),
3 CCPoint(size.width * 0.5f, 0));
4
layergradient->setPosition(CCPointZero);
5
layergradient->changeWidthAndHeight(size.width, size.height);
6 this->addChild(layergradient, -1);
需要注意的是,它与CCLayerColor一样,也是忽略掉了它的锚点,始终都是0,也就是始终锚点在左下角。
我们也可以同时通过行为动作,来达到项目中所需要的效果,例子代码如下:
1 CCActionInterval *fadein = CCFadeIn::create(5);
2
CCActionInterval *fadeOut = fadein->reverse();
3
CCAction *action = CCRepeatForever
::create(dynamic_cast<CCActionInterval *>(CCSequence::create(fadein, fadeOut, NULL)));
4
layergradient->runAction(action);
只有看到效果才能感受到它得作用,建议自己动手做一下实验,试着改变颜色和动作来达到不同得效果。
cocos2dx-CCLayerColor、CCLayerGradient,布布扣,bubuko.com