我可以像这样使用CCLabelTTF,(cocos2d-x v2.1.4)
CCLabelTTF* ableText = CCLabelTTF::create("hello red blue green", "Arial", 9);
ableText->setPosition(ccp(100, 100));
ableText->setAnchorPoint(ccp(0.5, 0.5));
ableText->setColor(ccc3(100, 100, 100));
ableText->setHorizontalAlignment(kCCTextAlignmentCenter);
this->addChild(ableText, 1);
但是,我想给字符串添加不同的颜色
“red”=>红色
“blue”=>蓝色
“green”=>绿色
是否可以使用一个CCLabelTTF?
答案 0 :(得分:3)
stubma' CCRichLabelTTF'解决方案使用样式标记支持此功能。
* TTF label which support different style in a string. By using a tag description such as:
* 'Hell[color=ffff0000]o[/color]", the 'o' character will be in red color. If you want
* a '[' character, use '\' to escape.
检查他的github。 Link
答案 1 :(得分:3)
您可以通过像这样的精灵访问它们来独立地改变每个字母的颜色
initialize results array
iterate through ratings
create new empty object (current_object)
add current_object to results array
iterate through employees
iterate through quarters
iterate through weeks
add value for i-th week as week_i to current_object
重要提示:我之前只使用 True Type字体
进行了尝试答案 2 :(得分:1)
不,您必须将字符串拆分为每种颜色的单个标签。
答案 3 :(得分:0)
you can do that Using Simply CCLabelBMFont. Because you can simply Access the Each character using index value.
CCLabelBMFont *lblInfo = [CCLabelBMFont labelWithString:@"Multi Color Label" fntFile:@"SSPro.fnt"];
then, you can Access the character using Index path.
for (i=starting index; i<ending index; i ++) {
CCSprite *charSprite = (CCSprite *)[[lblInfo children] objectAtIndex:i];
charSprite.color = [CCColor redColor];
}
set or change the color of character.
答案 4 :(得分:0)
不要不要通过使用
明确设置颜色 lablel->setTextColor();//don't do this
相反,使用设置每个字母的颜色
lablel->getLetter(0)->setColor(cocos2d::Color3B(255, 0, 0));
答案 5 :(得分:-1)
你也可以用一些符号来分割字符串&#34; @ Red&#34;然后使用原生的iOS和Android方法来实现效果。
对于_initWithString中的CCImage.mm文件中的iOS,您可以使用NSMutableAttributedString然后按这些标记拆分,然后设置范围颜色。有了这个,你不必创建不同的标签
对于Cocos2dXBitmap.java中的Android,您可以在迭代循环时创建新的Paint对象。
如果有帮助,请告诉我。感谢