COCOS 2dx setColor(Color3B :: GREEN)不起作用

时间:2015-12-17 03:59:56

标签: android c++11 cocos2d-x

当我试图将ios游戏发布到android setColor(Color3B :: GREEN)不起作用时,字体颜色不正常

l_answer = Label::createWithTTF(label_config,str_numberStr );
l_answer->setColor(Color3B::GREEN);
l_answer->enableOutline(Color4B(0,0,0,255),255);
l_answer->enableGlow(Color4B(0,0,0,225));
l_answer->setScale(0.0f);

字体颜色不正确。

1 个答案:

答案 0 :(得分:0)

您无法在标签上设置多个效果。 enum class LabelEffect ccTypes.h中定义的效果相互抵消。现在您只能看到Glow效果,但如果您交换enableOutline() and enableGlow(),您将只看到大纲效果。
例如,代码

Label* lbSomeText = Label::createWithTTF("sometext", "fonts/junegull_rg.ttf", 100);
lbSomeText->setPosition(Vec2(winSize.width * 0.5f, winSize.height * 0.5f));
lbSomeText->setColor(230,110,180); // I set for more contrast with green
lbSomeText->enableGlow(Color4B(0,0,0,255));
lbSomeText->enableOutline(Color4B(0,255,0,255), 15);
this->addChild(lbSomeText);

结果是:

outline

代码

...
lbSomeText->enableOutline(Color4B(0,255,0,255), 15);
lbSomeText->enableGlow(Color4B(0,0,0,255));
...

结果是:

enter image description here

接下来,如果您希望看到GREEN效果,则需要将Color4B(r, g, b, alpha)设置为Color4B(0, 255, 0, 255)。现在您有(0, 0, 0, 255),结果为BLACK颜色。例如,这是lbSomeText->enableGlow(Color4B(0,255,0,255));

的结果

enter image description here

正如您所看到的,绿色和黑色发光之间几乎没有区别,因为您无法设置发光宽度。所以,如果你需要更多的发光,更好的方法是在Photoshop等设计师程序中使用标签文本制作精灵,并在此程序中手动添加更多光晕。
我希望,我回答了你的问题。现在您可以选择最适合您的选项。