尊重知识版权,文章转载于:http://www.taikr.com/group/2/thread/1869
这次主要介绍一下关于cocos2d-x 3.x label自动换行的问题,详细的总结一下Cocos2d-x中新字体标签Label,总结如下:
在3.x中,Label支持四种方式的标签创建。并新增了阴影Shadow、轮廓Outline、发光Glow效果的支持。还支持文字内容的行间距、文字间距、自动换行的设置。
-
创建系统原生字体API:createWithSystemFont
-
创建TTF:createWithTTF(原LabelTTF)
-
创建CharMap:createWithCharMap(原LabelAtlas)
-
创建BMFont:createWithBMFont(原LabelBMFont)
-
对齐方式:TextHAlignment、TextVAlignment
-
Label的尺寸大小
-
自动换行
-
行间距、文字间距
-
单独设置某个字符
@H_301_64@ 【createWithSystemFont】 @H_301_64@ 创建系统原生字体的API。 @H_301_64@ 创建方式如下: //
static Label* createWithSystemFont(
const std::string& text,//字符串内容
const std::string& font,//字体(字体名称、或字体文件)
float fontSize,//字号
const Size& dimensions = Size::ZERO,//label的尺寸大小,默认不设置尺寸
TextHAlignment hAlignment = TextHAlignment::LEFT,//水平对齐方式,默认左对齐::LEFT
TextVAlignment vAlignment = TextVAlignment::TOP //垂直对齐方式,默认顶部 ::TOP
);
//
//
//使用系统的字体名称 "Arial" 来创建
Label* lb1 = Label::createWithSystemFont("123abc","Arial",24);
//
【createWithTTF】
@H_301_64@ 创建TTF的方式有以下两种:-
方式一:与2.x中LabelTTF的创建类似,不过使用的fontFile必须为字体文件。
-
方式二:通过TTF的配置信息数据结构TTFConfig来创建。
//
@H_301_64@ 2.2、使用TTFConfig创建TTFstaticLabel*createWithTTF(
//
@H_301_64@使用举例:
TTFConfigttfConfig;
//
【createWithCharMap】
@H_301_64@ CharMap的用法与2.x中的LabelAtlas是一样的,一般用来显示数字。不过它也可以用来显示其他字符,如英文字符。 @H_301_64@ 字体文件资源一般来自一张.png图片,或.plist文件。 @H_301_64@ 注:图片中每个字符的大小必须是固定的,若要改变字体大小,只能通过setScale放缩来实现。 @H_301_64@ 创建CharMap有三种方式:-
使用.png图片创建
-
使用纹理Texture2D创建
-
使用.plist创建
//
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEplistPUBLIC"-//Apple//DTDPLIST1.0//EN""
http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>version</key><!--plist版本-->
<integer>1</integer>
<key>textureFilename</key><!--字符图片资源:digit.png-->
<string>digit.png</string>
<key>itemWidth</key><!--每个字符的宽:20-->
<integer>20</integer>
<key>itemHeight</key><!--每个字符的高:20-->
<integer>20</integer>
<key>firstChar</key><!--起始字符:'0'-->
<integer>48</integer>
</dict>
</plist>
//
|
【createWithBMFont】
@H_301_64@ BMFont的用法与2.x中的LabelBMFont是一样的。 @H_301_64@ 这个类使用之前,需要添加好字体文件,包括一个图片文件(*.png)和一个字体坐标文件(*.fnt),这两个文件名称必须一样。可以下载一个fnt编辑工具来自定义字体。 @H_301_64@ 值得注意的是: @H_301_64@ 这个类也没办法指定字体的字号大小,需要用setScale来缩放调整大小。
//
Label*lb7=Label::createWithBMFont("bitmapFontTest.fnt","123abc",TextHAlignment::LEFT);
//
|
-
SpriteBatchNode:用于加快字体的渲染速度。
-
LabelProtocol:用于设置Label的字符串内容。