cocos2d-x を使用してゲームを作成していて、背景色の変更に関する問題に遭遇しました。cocos2d で例を見つけましたが、どうやらこれは Obj-c で記述された cocos2d にのみ適用されるようです。基本的には、CCLayer の代わりに CCLayerColor を使用し、コンストラクターが起動されたときに色を設定するという考え方です。
cocos2d-x で背景色を変更する方法を知っている人はいますか? それはかなり単純なようですが、明らかな何かが欠けていると確信しています。
cocos2d-x を使用してゲームを作成していて、背景色の変更に関する問題に遭遇しました。cocos2d で例を見つけましたが、どうやらこれは Obj-c で記述された cocos2d にのみ適用されるようです。基本的には、CCLayer の代わりに CCLayerColor を使用し、コンストラクターが起動されたときに色を設定するという考え方です。
cocos2d-x で背景色を変更する方法を知っている人はいますか? それはかなり単純なようですが、明らかな何かが欠けていると確信しています。
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)) )
cocos2d-x v.3.x では、次のように init メソッド内に LayerColor を追加できます。
auto bg = cocos2d::LayerColor::create(Color4B(53, 53, 53, 255));
this->addChild(bg);
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;
}
パフォーマンスに影響を与えない最も簡単な方法は、次のとおりです。
glClearColor(1.0,1.0,1.0,1.0);
Scene init() 関数のどこかに。この方法では、LayerColor に変更する必要がなく、パフォーマンスにも影響しません。乾杯!