【问题标题】:Action for changing the color of layer?更改图层颜色的操作?
【发布时间】:2015-08-16 01:50:25
【问题描述】:

我的游戏由一个单一的场景组成,它是一个图层颜色。但是,当我在“关卡”之间转换时,我想通过平滑转换来更改背景颜色。

例如,如果 级别 1 的 rgb 值为 (100,50,70) ,并且 级别 2 的 rgb 值为 (200,30,123)。

在几秒钟的时间里,我想慢慢地将图层颜色的rgb值从1级值修改为2级值。

是否可以使用 cocos2d 操作来做到这一点?

编辑:

我不想为我的图层的所有孩子着色。 我的场景是图层颜色类型:

class MyScene : public cocos2d::LayerColor

在初始化中我设置了颜色:

bool MyScene::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !LayerColor::initWithColor(Color4B(10, 20, 200, 255) )) {
        return false;
    } ....

我不想给整个场景着色。我只想改变颜色。

【问题讨论】:

    标签: cocos2d-x


    【解决方案1】:

    使用cocos2d::TintTo 操作:

    auto layer = cocos2d::LayerColor::create(cocos2d::Color4B(100, 50, 70, 255));
    ...
    layer->runAction(cocos2d::TintTo::create(2.0, 200, 30, 123));
    

    【讨论】:

    • 对不起 - 我想我不清楚。我不想为整个场景和所有孩子着色。我只是想改变背景颜色。
    • cocos2d::LayerColor::setColor 不会改变它的孩子的颜色,除非你调用 layer->setCascadeColorEnabled(true);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多