我一直在使用 cocos2d-x 编写游戏,但遇到了更改背景颜色的问题。我在 cocos2d 中找到了一个示例,但显然这只适用于用 Obj-c 编写的 cocos2d。基本上这个想法是使用 CCLayerColor 而不是 CCLayer,并且在构造函数被触发时设置颜色。
有谁知道如何更改 cocos2d-x 中的背景颜色?似乎这很简单,我很确定我错过了一些明显的东西。
我一直在使用 cocos2d-x 编写游戏,但遇到了更改背景颜色的问题。我在 cocos2d 中找到了一个示例,但显然这只适用于用 Obj-c 编写的 cocos2d。基本上这个想法是使用 CCLayerColor 而不是 CCLayer,并且在构造函数被触发时设置颜色。
有谁知道如何更改 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);
我可以找到不影响性能的最简单方法是简单地执行以下操作:
glClearColor(1.0,1.0,1.0,1.0);
在您的场景 init() 函数中的某个位置。这样您就不必更改为 LayerColor 并且性能也不受影响。干杯!
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;
}