我的游戏包含一个LayerColor场景。但是,当我在“级别”之间转换时,我想通过平滑过渡来更改背景颜色。
例如,如果 级别1的rgb值是(100,50,70),并且 2级的rgb值为(200,30,123)。
在几秒钟的时间内,我想慢慢地将图层颜色的rgb值从1级值修改为2级值。
是否可以使用cocos2d操作执行此操作?
编辑:
我不想给我的图层中的所有孩子着色。 我的场景是图层颜色类型:
class MyScene : public cocos2d::LayerColor
在Init中我设置了颜色:
bool MyScene::init()
{
//////////////////////////////
// 1. super init first
if ( !LayerColor::initWithColor(Color4B(10, 20, 200, 255) )) {
return false;
} ....
我不想整个场景。我只想改变颜色。
答案 0 :(得分:2)
使用cocos2d::TintTo
操作:
auto layer = cocos2d::LayerColor::create(cocos2d::Color4B(100, 50, 70, 255));
...
layer->runAction(cocos2d::TintTo::create(2.0, 200, 30, 123));