c++cocos2d-iphonecocos2d-xcclayer

How to set background color of layer in cocos2d-x?


I've been writing a game using cocos2d-x and ran into an issue with changing the background color. I found an example in cocos2d, but apparently this only applies to cocos2d which is written in Obj-c. Basically the idea is to use a CCLayerColor instead of CCLayer, and when the constructor gets fired set the color.

Does anyone know how to change the background color in cocos2d-x? Seems like it would be pretty simple, I'm pretty sure I'm missing something obvious.


Solution

  • 2.X or below

    Extend CCLayerColor instead of CCLayer. For example,

    class CommonScene : public cocos2d::CCLayerColor
    {
    public:
    ...
    }
    

    Initialize with this code:

    bool CommonScene::init()
    {
        //////////////////////////////
        // 1. super init first
        if( !CCLayerColor::initWithColor(ccc4(255, 255, 255, 255)) ) //RGBA
        {
            return false;
        }
        ...
    }
    

    If you want to change background use the setColor method from CCLayerColor. For example,

    this->setColor(ccc3(255, 255, 255));
    

    3.0 or above

    Modify above code like this:

    Header file (.h)

    class CommonScene : public cocos2d::LayerColor
    

    Source file (.cpp)

    if( !LayerColor::initWithColor(Color4B(255,255,255,255)) )