cocos2d-x 文本标签的用法
2016-04-08 12:45
453 查看
Cocos2d-x中标签类,标签类主要有三种:LabelTTF、LabelAtlas、LabelBMFont,此外,3.x推出新的标签类。
1、LabelTTF是使用系统中的字体,它是最简单的标签类,它是继承Node类,具有Node类的基本属性。
LabelTTF的其中一个create函数如下:
static LabelTTF * create(
const std::string& string,
const std::string& fontName,
float fontSize,
const Size& dimensions = Size::ZERO,
TextHAlignment hAlignment = TextHAlignment::CENTER,
TextVAlignment vAlignment = TextVAlignment::TOP);
这里我大家解释下各个参数的作用:第一个参数是我们要显示的文本,他是一个字符串类型;第二个参数是我们字体文件的路径也是字符串类型;第三个参数是我们要显示字体的大小,是Size类型;第四个参数是指在屏幕上占用的区域大小,可省略;第五个参数是指文字横向对齐方式,也可省略;第六个参数是纵向对齐方式,可省略。
2、LabelAtlas是图片集标签,其中Atlas本意是“图片集”,这种标签显示的文字是从一个图片集中取出来的,因此需要额外加载图片集文件。
LabelAtlas比LabelTTF快很多。LabelAtlas中的每个字符必须有固定的高度和宽度。
static LabelAtlas* create(
const std::string& string,
const std::string& charMapFile,
int itemWidth,
int itemHeight,
int startCharMap);
同样的各个参数作用:第一个参数也是要显示的文本,第二个参数是文件名(包括文件路径,文件是图片集文件,格式.png);第三、四个参数是该字体在图片集里的高度和宽度,第五个参数是图片集的开始字符。
3、LabelBMFont是位图字体标签,需要添加字体文件:暴扣一个图片集(.png)和一个字符坐标文件(.fnt)。LabelBMFont比LabelTTF快很多,LabelBMFont中的每个字符的宽度是可变的。
LabelBMFont是继承Node类,具有Node类的基本特性。
static LabelBMFont * create(
const std::string& str,
const std::string& fntFile,
float width = 0,
TextHAlignment alignment = TextHAlignment::LEFT,
const Vec2& imageOffset = Vec2::ZERO);
第一个参数是要显示的文本,第二个参数是fnt文件(包括路径),第三个参数是宽度,第四个是参数是横向对齐方式,第五个参数是字体色调。
除以上这三个比较常见的文本字体类外,我们cocos2d-x 的Label里还有一些常用的函数,通过这些方法我们也可以创建我们想要的字体,下面我们来介绍一下他们:
1、Label创建系统标签对象,它的创建方法如下:
static Label* createWithSystemFont(
const std::string& text,
const std::string& font,
float fontSize,
const Size& dimensions = Size::ZERO,
TextHAlignment hAlignment = TextHAlignment::LEFT,
TextVAlignment vAlignment = TextVAlignment::TOP);
这里我们就介绍下第三个参数,其他的参数上面有相同的,我就不介绍了,第三个参数是指改字体在屏幕中占用的大小。
2、Label创建TTF字体标签对象:
static Label * createWithTTF(
const std::string& text,
const std::string& fontFilePath,
float fontSize,
const Size& dimensions = Size::ZERO, TextHAlignment hAlignment = TextHAlignment::LEFT,
extVAlignment vAlignment = TextVAlignment::TOP);
参数介绍看上面的。
3、static Label* createWithTTF(
const TTFConfig& ttfConfig,
const std::string& text,
extHAlignment hAlignment = TextHAlignment::LEFT,
int maxLineWidth = 0);
其中:第一个参数是创建一个TTFConfig结构体变量
我们看看这个结构体的整体
_ttfConfig(
const std::string& filePath = "",
float size = 12,
const GlyphCollection& glyphCollection = GlyphCollection::DYNAMIC,
const char *customGlyphCollection = nullptr, bool useDistanceField = false,
int outline = 0)
第一个参数是字体文件路径
第二个参数是字体大小
第三个参数是字体库类型
第四个参数是自定义字体库
第五个参数是开启距离字段字体开关
第六个参数是字体描边。
4、Label创建BM标签对象
static Label* createWithBMFont(
const std::string& bmfontPath,
const std::string& text,
const TextHAlignment& hAlignment = TextHAlignment::LEFT,
int maxLineWidth = 0,
const Vec2& imageOffset = Vec2::ZERO);
参数介绍看上面。
好了,常用的创建文本的方法介绍的差不多了,在这里要跟大家说下,其实在Label里的上面这些创建文本方法都可以用Label的create方法代替,create重载了以上的四种方法,突然感觉create很强大。。。。
1、LabelTTF是使用系统中的字体,它是最简单的标签类,它是继承Node类,具有Node类的基本属性。
LabelTTF的其中一个create函数如下:
static LabelTTF * create(
const std::string& string,
const std::string& fontName,
float fontSize,
const Size& dimensions = Size::ZERO,
TextHAlignment hAlignment = TextHAlignment::CENTER,
TextVAlignment vAlignment = TextVAlignment::TOP);
这里我大家解释下各个参数的作用:第一个参数是我们要显示的文本,他是一个字符串类型;第二个参数是我们字体文件的路径也是字符串类型;第三个参数是我们要显示字体的大小,是Size类型;第四个参数是指在屏幕上占用的区域大小,可省略;第五个参数是指文字横向对齐方式,也可省略;第六个参数是纵向对齐方式,可省略。
2、LabelAtlas是图片集标签,其中Atlas本意是“图片集”,这种标签显示的文字是从一个图片集中取出来的,因此需要额外加载图片集文件。
LabelAtlas比LabelTTF快很多。LabelAtlas中的每个字符必须有固定的高度和宽度。
static LabelAtlas* create(
const std::string& string,
const std::string& charMapFile,
int itemWidth,
int itemHeight,
int startCharMap);
同样的各个参数作用:第一个参数也是要显示的文本,第二个参数是文件名(包括文件路径,文件是图片集文件,格式.png);第三、四个参数是该字体在图片集里的高度和宽度,第五个参数是图片集的开始字符。
3、LabelBMFont是位图字体标签,需要添加字体文件:暴扣一个图片集(.png)和一个字符坐标文件(.fnt)。LabelBMFont比LabelTTF快很多,LabelBMFont中的每个字符的宽度是可变的。
LabelBMFont是继承Node类,具有Node类的基本特性。
static LabelBMFont * create(
const std::string& str,
const std::string& fntFile,
float width = 0,
TextHAlignment alignment = TextHAlignment::LEFT,
const Vec2& imageOffset = Vec2::ZERO);
第一个参数是要显示的文本,第二个参数是fnt文件(包括路径),第三个参数是宽度,第四个是参数是横向对齐方式,第五个参数是字体色调。
除以上这三个比较常见的文本字体类外,我们cocos2d-x 的Label里还有一些常用的函数,通过这些方法我们也可以创建我们想要的字体,下面我们来介绍一下他们:
1、Label创建系统标签对象,它的创建方法如下:
static Label* createWithSystemFont(
const std::string& text,
const std::string& font,
float fontSize,
const Size& dimensions = Size::ZERO,
TextHAlignment hAlignment = TextHAlignment::LEFT,
TextVAlignment vAlignment = TextVAlignment::TOP);
这里我们就介绍下第三个参数,其他的参数上面有相同的,我就不介绍了,第三个参数是指改字体在屏幕中占用的大小。
2、Label创建TTF字体标签对象:
static Label * createWithTTF(
const std::string& text,
const std::string& fontFilePath,
float fontSize,
const Size& dimensions = Size::ZERO, TextHAlignment hAlignment = TextHAlignment::LEFT,
extVAlignment vAlignment = TextVAlignment::TOP);
参数介绍看上面的。
3、static Label* createWithTTF(
const TTFConfig& ttfConfig,
const std::string& text,
extHAlignment hAlignment = TextHAlignment::LEFT,
int maxLineWidth = 0);
其中:第一个参数是创建一个TTFConfig结构体变量
我们看看这个结构体的整体
_ttfConfig(
const std::string& filePath = "",
float size = 12,
const GlyphCollection& glyphCollection = GlyphCollection::DYNAMIC,
const char *customGlyphCollection = nullptr, bool useDistanceField = false,
int outline = 0)
第一个参数是字体文件路径
第二个参数是字体大小
第三个参数是字体库类型
第四个参数是自定义字体库
第五个参数是开启距离字段字体开关
第六个参数是字体描边。
4、Label创建BM标签对象
static Label* createWithBMFont(
const std::string& bmfontPath,
const std::string& text,
const TextHAlignment& hAlignment = TextHAlignment::LEFT,
int maxLineWidth = 0,
const Vec2& imageOffset = Vec2::ZERO);
参数介绍看上面。
好了,常用的创建文本的方法介绍的差不多了,在这里要跟大家说下,其实在Label里的上面这些创建文本方法都可以用Label的create方法代替,create重载了以上的四种方法,突然感觉create很强大。。。。
相关文章推荐
- cocos2dx 游戏当中的战争迷雾
- cocos在win平台exe无法使用 UserDefault 解决方法
- Cocos2d-x:TexturePacker的使用
- [cocos2dx笔记017]cocos2dx 2.2.6 lua的类型转换
- [cocos2dx笔记016]cocos2dx 3.2 的UserDefault
- 【步兵 经验篇】关于脚本语言的优势
- Cocos2d-x 3.10 开发环境的配置
- cocos2d-x C++ 利用C++11新特性+runAction RepeatForever Sequence DelayTime做一个持续循环函数 每秒更新 5次后停止
- ocos2dx常见的46种动作+22种特效详解
- cocos2dx--CCSprite,CCSpriteFrame,CCTexture,CCSpriteBatchNode
- cocos2d-js常用命令
- Cocos2d-x学习笔记(10)(CCMenu菜单)
- 游戏底层逻辑,运动&&寻路(一)
- Cocos2d-x多语言支持解决方式
- cocos2dx--纹理平铺
- Cocos2d-x 场景中的生命周期函数?
- Cocos2dx 3.0 过渡篇(二十九)globalZOrder()与localZOrder()
- Cocos2d-JS 笔记(SUN)
- cocos2dx3.2 画图方法小修改之 C++ final学习
- cocos2d中的内存管理,举例说明