上一篇写到用tinyxml来获取字符资源,下面介绍怎么显示滚动字符串
首先送上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动态写到画布里即可实现滚动文字了。