您不能在标签上设置多个效果。在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 等设计器程序中使用标签文本制作精灵,并在此程序中手动添加更多发光。
我希望,我回答了你的问题。现在您可以选择最适合您的选项。