【问题标题】:Changing background colour of a layer in cocos2d js在 cocos2d js 中更改图层的背景颜色
【发布时间】:2015-03-20 11:27:57
【问题描述】:

我正在构建一个 android 应用程序..... 我尝试使用cc.color(,,),但没有按预期工作...... 有人可以告诉我如何更改图层背景颜色吗? 谢谢。

var GameScene = cc.Scene.extend({
onEnter:function () {
    this._super();
    var layer = new GameLayer();
    this.addChild(layer);

    backgroundLayer = new cc.LayerColor.create();
    backgroundLayer.changeWidthAndHeight(winSize.width, winSize.height);
    backgroundLayer.setColor(cc.c3b(144, 192, 248));
    layer.addChild(backgroundLayer);
    backgroundLayer.setPosition(cc.p(winSize.width * 0.5, winSize.height *       0.5));


}
});

【问题讨论】:

  • 你用的是什么版本的cocos2d-js?运行该代码时,控制台中是否没有出现错误?

标签: background-color cocos2d-js


【解决方案1】:

您不必添加新图层/节点来更改图层的背景颜色。您可以通过扩展 LayerColor 并从 init 函数中调用适当的超级构造函数来简单地更改 GameLayer 本身的背景颜色:

var GameLayer = cc.LayerColor.extend({
    init:function () {
        this._super(cc.color.WHITE);
        //...
    }
};

【讨论】:

  • 你的意思是在没有初始化的ctor函数中将cc.color.WHITE传递给super吗?
【解决方案2】:

首先,您需要创建 LayerColor 并将其作为背景添加到场景中以对其进行着色。 controller/rootNode层只有Layer,不是LayerColor,不能设置具体的。

backgroundLayer = new cc.LayerColor.create();
backgroundLayer.changeWidthAndHeight(winSize.width, winSize.height);
backgroundLayer.setColor(cc.c3b(144, 192, 248));
controller.addChild(backgroundLayer);
backgroundLayer.setPosition(cc.p(winSize.width * 0.5, winSize.height * 0.5));

【讨论】:

  • 我已经使用了这个代码并且背景颜色没有变化...我已经编辑了问题,使用它的方式..正确吗? @sortris
  • 换行:cc.addChild(backgroundLayer); to layer.addChild(backgroundLayer);
  • 我正在使用 v3.3 @Sebastián Vansteenkiste .... 我进行了更改,但图层颜色仍然没有变化.. @sortris
  • 我已经解决了这个问题....你能帮我解决这个问题吗stackoverflow.com/questions/29193210/…@sortris
  • 如果您解决了该问题,请发布您是如何解决的。对于下一个:)
猜你喜欢
  • 1970-01-01
  • 2012-08-20
  • 2017-12-16
  • 2022-12-29
  • 2021-04-01
  • 1970-01-01
  • 2014-04-26
  • 2018-07-25
  • 1970-01-01
相关资源
最近更新 更多