Cocos2d-x游戏开发之CCLabelTTF标签详解之Create方法(设置自动换行的标签)和换行符的巧妙使用(十六)(高级篇) (转)
2013-12-04 16:29
1241 查看
转自:http://blog.csdn.net/wisdom605768292/article/details/12929741
在上面的一篇文章之中,我们讲解了标签的对齐方式,设置后,可以固定标签的位置,向固定的方向增加内容,就像是写字一样的。
好的,问题来了,写字的时候,当一行足够填写内容的时候,上面的方法是OK的;当我们要显示一段文字的时候呢,这时候就需要自动换好多行来
适应我们的屏幕,来逐行显示。
囿于我们学习时候的经验,很容易认为CCLabelTTF只能显示单行的文本,但是这是不完全正确的。
我们的一段文本的显示,换行还是需要这个标签来实现。
好的,下面我们先来看下需要使用的api。
[cpp]
view plaincopy
/** creates a CCLabelTTF from a fontname, horizontal alignment, dimension in points, and font size in points.
@since v2.0.1
*/
static CCLabelTTF * create(const char *string, const char *fontName, float fontSize,
const CCSize& dimensions, CCTextAlignment hAlignment);//第三参数,标签纹理的尺寸;第四参数,标签横向对齐方式
/** creates a CCLabel from a fontname, alignment, dimension in points and font size in points
@since v2.0.1
*/
static CCLabelTTF * create(const char *string, const char *fontName, float fontSize,
const CCSize& dimensions, CCTextAlignment hAlignment,
CCVerticalTextAlignment vAlignment);
这里有2个api。我们这里只是演示第一个api的使用,其他的可以自己在这个基础之上在进行学习。
这里有一段测试文本:
(流泪)兄弟,你骂的正是,我越亦消逝的理想是需要有人激发的,你愿意跟我切磋切磋吗?我想更大程度的激发我心中的小宇宙。
好的,我们这里需要把他显示在我们的手机上面(显示多行文本的时候,很需要的)。
示例代码如下:
[cpp]
view plaincopy
string language = "(流泪)兄弟,你骂的正是,我越亦消逝的理想是需要有人激发的,你愿意跟我切磋切磋吗?我想更大程度的激发我心中的小宇宙。
";
//获取屏幕尺寸
CCSize visibleSize = CCDirector::sharedDirector()->getWinSize();
//设置标签纹理的字体和大小,纹理尺寸和横向对齐方式为剧中对齐
CCLabelTTF *ttf = CCLabelTTF::create("","Zapfino",30,CCSizeMake(visibleSize.width-50,visibleSize.height-50),kCCTextAlignmentCenter);
this->setPosition(visibleSize.width/2,visibleSize.height/2);
this->addChild(ttf,1);
ttf->setString(language.c_str());
效果贴图如下:
好的,时间有限,第一个问题解决。
在上面的一篇文章之中,我们讲解了标签的对齐方式,设置后,可以固定标签的位置,向固定的方向增加内容,就像是写字一样的。
好的,问题来了,写字的时候,当一行足够填写内容的时候,上面的方法是OK的;当我们要显示一段文字的时候呢,这时候就需要自动换好多行来
适应我们的屏幕,来逐行显示。
囿于我们学习时候的经验,很容易认为CCLabelTTF只能显示单行的文本,但是这是不完全正确的。
我们的一段文本的显示,换行还是需要这个标签来实现。
好的,下面我们先来看下需要使用的api。
[cpp]
view plaincopy
/** creates a CCLabelTTF from a fontname, horizontal alignment, dimension in points, and font size in points.
@since v2.0.1
*/
static CCLabelTTF * create(const char *string, const char *fontName, float fontSize,
const CCSize& dimensions, CCTextAlignment hAlignment);//第三参数,标签纹理的尺寸;第四参数,标签横向对齐方式
/** creates a CCLabel from a fontname, alignment, dimension in points and font size in points
@since v2.0.1
*/
static CCLabelTTF * create(const char *string, const char *fontName, float fontSize,
const CCSize& dimensions, CCTextAlignment hAlignment,
CCVerticalTextAlignment vAlignment);
这里有2个api。我们这里只是演示第一个api的使用,其他的可以自己在这个基础之上在进行学习。
这里有一段测试文本:
(流泪)兄弟,你骂的正是,我越亦消逝的理想是需要有人激发的,你愿意跟我切磋切磋吗?我想更大程度的激发我心中的小宇宙。
好的,我们这里需要把他显示在我们的手机上面(显示多行文本的时候,很需要的)。
示例代码如下:
[cpp]
view plaincopy
string language = "(流泪)兄弟,你骂的正是,我越亦消逝的理想是需要有人激发的,你愿意跟我切磋切磋吗?我想更大程度的激发我心中的小宇宙。
";
//获取屏幕尺寸
CCSize visibleSize = CCDirector::sharedDirector()->getWinSize();
//设置标签纹理的字体和大小,纹理尺寸和横向对齐方式为剧中对齐
CCLabelTTF *ttf = CCLabelTTF::create("","Zapfino",30,CCSizeMake(visibleSize.width-50,visibleSize.height-50),kCCTextAlignmentCenter);
this->setPosition(visibleSize.width/2,visibleSize.height/2);
this->addChild(ttf,1);
ttf->setString(language.c_str());
效果贴图如下:
好的,时间有限,第一个问题解决。
相关文章推荐
- cocos2dx通过Jni调用Android的Java层代码(上)
- cocos2dx通过Jni调用Android的Java层代码(下)
- cocos2d-x 常用宏、数学函数
- cocos2d-x3.0游戏示例SimpleGame中的一个小问题
- Cocos2DX之CCParallaxNode
- cocos2d-x的CCArray用法
- cocos2d-x 2.2.1异步加载图片
- Cocos2d-x快速打包脚本
- cocos2d-x中的NODE_FUNC和CREATE_FUNC宏作用
- 新建cocos2d-x 项目第一次导入eclipse时,Cocos2dxActivity报错
- cocos2d-x2.2九宫格CCScale9Sprite有bug
- TalkingData Cocos2dx在android平台使用总结
- [置顶] cocos2d-x 植物大战僵尸(4) 帽子僵尸的产生
- Cocos2d-x界面中嵌套android的webview
- Cocos2d-x 2.20及以上版本如何创建基于Lua的项目
- cocos2d-x 开发中使用的一些工具
- 移动开发之浅析cocos2d-x的中文支持问题
- Cocos2d-x教程(9)-简单的数据存储,CCUserDefault
- cocos2dx之创建Button
- 『note』vs2010工程无法加入project