Lab

Cocos2d-x:色の指定

 Tag :  Published : 2013-11-25

Pocket

ccColor3B、ccColor4B、ccColor4F・・・
たくさんあるCocos2d-xの色設定を整理してみます。
> Ver3.x : 『色の指定』はこちら

色の設定

Cocos2d-xにおける、色の設定方法です。

    //RGBで設定(R:255、G:0、B:0 -> 赤)
    ccColor3B color1 = ccc3(255, 0, 0);

    //RGBAで設定(R:0、G:255、B:0、A:128 -> 透明度50%の緑)
    ccColor4B color2 = ccc4(0, 255, 0, 128);

    //RGBAなんだけど、パーセントで設定(R:0、G:0、B:1、A:0.5 -> 透明度50%の青)
    ccColor4F color3 = ccc4f(0, 0, 1, 0.5);
    

色の変換

色の設定を変換します。
例えばCCDrawNodeは、ccColor4Fで色設定を行わなくてはいけないので、以下のコードではエラーになります。

    CCSize size = CCDirector::sharedDirector()->getVisibleSize();

    ccColor3B color1 = ccc3(255, 0, 0);

    CCDrawNode *node = CCDrawNode::create();
    //color1はccColor4Fでなくて、ccColor3Bなのでエラーになる。
    node->drawDot(ccp(size.width*.5, size.height*.5), 100, color1);
    
    addChild(node);
    

そこで、ccc4FFromccc3Bを使ってcolor1をccColor4Fに変換します。

    CCSize size = CCDirector::sharedDirector()->getVisibleSize();

    ccColor3B color1 = ccc3(255, 0, 0);

    CCDrawNode *node = CCDrawNode::create();
    node->drawDot(ccp(size.width*.5, size.height*.5), 100, ccc4FFromccc3B(color1));
    
    addChild(node);
    

ccc4FFromccc3B:ccColor3B から ccColor4F に変換

ccc4FFromccc4B:ccColor4B から ccColor4F に変換

ccc4BFromccc4F:ccColor4F から ccColor4B に変換

pageTop