15

cocos2d-x を使用してゲームを作成していて、背景色の変更に関する問題に遭遇しました。cocos2d で例を見つけましたが、どうやらこれは Obj-c で記述された cocos2d にのみ適用されるようです。基本的には、CCLayer の代わりに CCLayerColor を使用し、コンストラクターが起動されたときに色を設定するという考え方です。

cocos2d-x で背景色を変更する方法を知っている人はいますか? それはかなり単純なようですが、明らかな何かが欠けていると確信しています。

4

4 に答える 4

33

2.X以下

CCLayerColorの代わりに拡張しCCLayerます。例えば、

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

次のコードで初期化します。

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

背景を変更したい場合は、 のsetColorメソッドを使用しCCLayerColorます。例えば、

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

3.0以上

上記のコードを次のように変更します。

ヘッダー ファイル (.h)

class CommonScene : public cocos2d::LayerColor

ソースファイル (.cpp)

if( !LayerColor::initWithColor(Color4B(255,255,255,255)) )
于 2012-08-25T12:58:12.637 に答える
10

cocos2d-x v.3.x では、次のように init メソッド内に L​​ayerColor を追加できます。

auto bg = cocos2d::LayerColor::create(Color4B(53, 53, 53, 255));
this->addChild(bg);
于 2015-09-11T09:47:49.553 に答える
8

Cocos2d-x v3.0 の場合

*.h で

class PlayScene : public cocos2d::LayerColor

*.cpp で

bool PlayScene::init()
{
    if ( !LayerColor::initWithColor(Color4B(255, 255, 255, 255) )) {
        return false;
    }

    return true;
}
于 2014-07-11T05:37:41.903 に答える
8

パフォーマンスに影響を与えない最も簡単な方法は、次のとおりです。

glClearColor(1.0,1.0,1.0,1.0);

Scene init() 関数のどこかに。この方法では、LayerColor に変更する必要がなく、パフォーマンスにも影響しません。乾杯!

于 2014-05-31T05:38:19.960 に答える