【问题标题】:COCOS 2dx setColor(Color3B::GREEN) is not workingCOCOS2d setColor(Color 3B::GREEN) 不工作
【发布时间】:2015-12-17 03:59:55
【问题描述】:

当我尝试将 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);

字体颜色不正确。

【问题讨论】:

  • “来不及”是什么意思?
  • 实际上我希望我的标签(字体)颜色应该是深绿色。但默认情况下它会变成黑色。字体的颜色不会出现。

标签: android c++11 cocos2d-x


【解决方案1】:

您不能在标签上设置多个效果。在enum class LabelEffect 中定义的效果在ccTypes.h 中,它们相互抵消。现在你只能看到发光效果,但是如果你交换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);

结果是:

代码

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

结果是:

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

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

【讨论】:

    猜你喜欢
    • 2019-08-09
    • 2022-01-04
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 2019-12-10
    相关资源
    最近更新 更多