Cocos2d-x学习笔记(十二)之 文本渲染类
在游戏中,文字占有很重要的位置,游戏的介绍、游戏中的提示和对话等都需要用到文字。Cocos2d-x在文字渲染方面提供了非常灵活的机制,既可以直接使用系统字,也可以自渲染字体,文本渲染类的继承关系如下:
CCLabelAtlas、CCLabelBMFont、CCLabelTTF-->CCLabelProtocol。 CCTextFieldTTF-->CCLabelTTF。
1、CCLabelAtlas类
CCLabelAtlas类是使用图片作为文字的一种方式,该类可以通过图片直接定义。使用示例如下:
1 //创建CCLabelAtlas实例,参数:要显示的文字字符串、图片路径、字符宽度、字符高度、起始字符。
2 CCLabelAtlas* label = CCLabelAtlas::create( "123", "fonts/charmap.png", 48, 64, " " );
3
4 //CCLabelAtlas类也可以使用plist配置文件的描述来定义
5 CCLabelAtlas* label = CCLabelAtlas::create( "123", "fonts/charmap.plist");
6
7 //使用CCLabelAtlas字体时,还可以定义颜色、透明度等参数,甚至文字标签页可以运动动作。
8 label->setColor( ccRED );
9
10 //设置动作
11 CCActionInterval* fade = CCFadeOut::create(1.0f);
12 CCActionInterval* fade_in = fade->reverse();
13 CCFiniteTimeAction* seq = CCSequence::create(fade, fade_in, NULL);
14 CCAction* repeat = CCRepeatForever::create((CCActionInterval*)seq);
15 label->runAction( repeat );
2、CCLabelTTF类
CCLabelTTF类是通过系统字来实现字体标签的,使用示例如下:
1 //创建CCLabelTTF类实例,参数:标签文字内容、范围大小、对齐方式、字库名称、字号
2 CCLabelTTF* ttf = CCLabelTTF::create( "cclabel ttf", CCSizeMake(256, 32), kCCTextAlignmentLeft, "Helvetica", 12 );
对齐方式可以为kCCTextAlignmentLeft(靠左对称)、kCCTextAlignmentCenter(靠中心对称)、kCCTextAlignmentRight(靠右对称)等。还可以通过设置setAnchorPoint设置整个字符串的锚点。
CCTextFieldTTF类是CCLabelTTF类的子类,它是输入框使用的文字标签,使用示例如下:
1 //创建CCTextFieldTTF类实例,参数:字符串、字体名称、字号
2 CCTextfieldTTF* textField = CCtextfieldTTF::create( "click here for input", FONT_NAME, FONT_SIZE );
CCLabelTTF速度偏慢,尽量使用另外的字体。
3、CCLabelBMFont类
CCLabelBMFont类也是文字渲染标签类。CCLabelBMFont类中的每个字都是一个精灵类,意味着每个字都可以有自己的旋转动作,并且支持FNT类型的文件。使用示例如下:
1 //创建CCLabelBMFont类实例,参数:显示的文字、FNT文件。可以给它设置锚点,也可以设置运动动作。
2 CCLabelBMFont* label = CClabelBMFont::create( "cclabel bmfont", "fonts/font.fnt" );
3
4 label->setAnchorPoint(cpp(0,0));
5
6 //可以获得单个文字,并可以为单个文字设置动作等。
7 CCSprite* char = (CCSprite*)label->getChildByTag(0);
生成FNT配置文件的工具不同的有不同的工具,大家可以到网上去查找自己使用的平台的对应的工具安装并使用,这里就不介绍了。