2013-07-30 73 views
1

我可以使用CCLabelTTF這樣,(的cocos2d-x v2.1.4)可能在一個CCLabelTTF中有不同的顏色字符串?

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); 

但是,我想給不同顏色的字符串。
「紅」=>紅色
「藍色」=>藍色
「綠色」=>綠色

使用一個CCLabelTTF這可能嗎?

回答

1

不,您必須將每個顏色的字符串分成單獨的標籤。

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. 
+0

好試過,所以用戶問如何用CCLabelTTF來做到這一點,但這個答案是有效的,因爲CCLabelBMFont是最常見的方式來表示具有多種顏色的單個字符串。這個答案不應該被拒絕,但也許Renish可以解釋兩種字體選擇之間的差異。 –

+0

@ KevinOrtman,非常感謝你的建議。我相信如何做任何事情很容易。所以我建議這樣。有人建議採用不同的標籤進行角色分離。但是,我不這樣做,因爲它是採取更多的內存地址,也處理也很困難。我喜歡評論,所以我們更新我的自我,並做更好的方式thing.thanks再次... –

2

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

您還可以通過某些符號(比如「@Red」)分割字符串,然後使用本機iOS和Android方法來提供效果。

對於_initWithString中CCImage.mm文件中的iOS,可以使用NSMutableAttributedString,然後按這些標記拆分,然後設置範圍顏色。因此,您不必創建不同的標籤

對於Cocos2dXBitmap.java中的Android,您可以在遍歷循環時創建新的Paint對象。

讓我知道是否有幫助。由於

2

您可以獨立通過訪問他們作爲這樣

message_label->getLetter(6)->setColor(Color3B::RED); 

重要精靈改變每個字母的顏色:我只用True Type字體

相關問題