http://blog.csdn.net/kuovane/article/details/8131789
首先送上demo,下載地址為:demo下載地址
一,怎么在文字前面空兩隔?只需在xml里的文字前面加倆個空格即可
二,怎么換行?
1,CCLabelTTF::labelWithString(pStr,CCSizeMake(100,100),
hAlignment,fontName, m_fontSize);
第二個參數可控制字符串在這個框里面的顯示,會自動換行。
2,遇到字符值為10也會換行
當一篇文章,中間有很多段落,希望每一段后面都能換行,開始顯示下一段,那么我們在每一段后面添加10即可實現換行。但是怎么在xml里每一段后面添加10呢,還未找到很好的方法,在里面我用\代表換行,讀取xml的文字之后,把所有的\都換成數值10.那么怎么表示\呢,可以用連續兩個\\表示一個字符\,demo里未實現這個。
三,怎么確定labelWithString第二個參數中的高的大小呢?可根據文字的size,asc字符個數,非asc個數來確定。比如文字的size為20,ascii字符為50,非ascii字符為200,可顯示的寬為200,
則有 height = ( (20*200 + 10*50) / 200 +1 )* 20 = 460;
如果剛好整除了,那就不需要+1了。另外這個計算只對win32下面有效,在ios得視字符間隔及行間隔來精確計算。
上面有個問題是計算文字的個數,詳見demo
四,當文字很多時,想滾動顯示其中的一部分,那該怎么辦呢?Demo里用的方法是
Cocos2d-x的CCRenderTexture,相當於一個畫布,超出部分是不顯示出來的,只需把label動態寫到畫布里即可實現滾動文字了。