上一篇是用CCRenderTexture来实现字符串的遮挡效果。下面用CCLabelTTF里的labelWithString和setTextureRect来实现字符串的滚动效果。
Demo下载地址:http://download.csdn.net/detail/lansong4/4759556
一,字符串显示的过程:
首先把文字画到一段内存中,然后根据这段数据生成纹理,纹理自然是跟精灵那些一样的。这个纹理的长宽是由labelWithString的第二参数CCSize决定的,如
CCSizeMake(200,200),那么长为200,宽也为200.cocos2d-x里实现了根据宽来换行的,但是不知道字符串的长度有多大,所以得自己算出字符串的高度。
setTextureRect这个方法是指显示区域,这样画图的时候会拷贝这个显示区域到label位置的目的屏幕上,可简单这样理解。值得注意的是,label的描点得设置为
cpp(0,0),如label->setAnchorPoint(ccp(0,0)),,默认是居中的,居中不好处理的。
可根据setTextureRect的第一个参数控制左右滚动,第二个参数来控制上下滚动。Demo里只事例了上下的控制。
更多的细节可看看demo里面的实现,这里把大概的思路及其原理简单的说下。