【问题标题】:How to set background color of layer in cocos2d-x?cocos2d-x中如何设置图层的背景颜色?
【发布时间】:2012-08-20 11:33:03
【问题描述】:

我一直在使用 cocos2d-x 编写游戏,但在更改背景颜色时遇到了问题。我在 cocos2d 中找到了一个example,但显然这只适用于用 Obj-c 编写的 cocos2d。基本上这个想法是使用 CCLayerColor 而不是 CCLayer,并在构造函数被触发时设置颜色。

有人知道如何在 cocos2d-x 中改变背景颜色吗?看起来这很简单,我很确定我错过了一些明显的东西。

【问题讨论】:

    标签: c++ cocos2d-iphone cocos2d-x cclayer


    【解决方案1】:

    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;
        }
        ...
    }
    

    如果您想更改背景,请使用 CCLayerColor 中的 setColor 方法。例如,

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

    3.0或以上

    像这样修改上面的代码:

    头文件(.h)

    class CommonScene : public cocos2d::LayerColor
    

    源文件 (.cpp)

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

    【讨论】:

    【解决方案2】:

    我能找到不影响性能的最简单方法是:

    glClearColor(1.0,1.0,1.0,1.0);
    

    场景 init() 函数中的某个位置。这样您就不必更改为 LayerColor 并且性能也不受影响。干杯!

    【讨论】:

      【解决方案3】:

      适用于 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;
      }
      

      【讨论】:

        【解决方案4】:

        在 cocos2d-x v.3.x 中,您可以像这样在 init 方法中添加一个 LayerColor:

        auto bg = cocos2d::LayerColor::create(Color4B(53, 53, 53, 255));
        this->addChild(bg);
        

        【讨论】:

        • 这样cocos2d-x显示颜色不对。如果我使用 LayerColor::create(Color4B(255, 0, 0, 255)) ,显示的颜色是 fb0007 而不是 ff0000
        猜你喜欢
        • 1970-01-01
        • 2019-07-10
        • 1970-01-01
        • 2023-03-25
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 2010-12-11
        • 1970-01-01
        相关资源
        最近更新 更多