cocos2d-x 滚动文字(二)

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动态写到画布里即可实现滚动文字了。

你可能感兴趣的:(cocos2d-x)