Label
- 创建系统原生字体
auto labe1 = Label::create("houwenchao", "Arial", 36); //参数:内容 字体 字号 label尺寸大小 水平对齐方式(默认左对齐) 竖直对齐方式(默认顶部)
labe1->setPosition(Vec2(240, 280));
this->addChild(labe1); //addChild() 三个参数:第一个是对象, 第二个是层顺序, 默认0,表示最后添加, 第三个tag值
- 创建TTF
两种方式:方式一:使用的fontFile必须为字体文件(如"xx.ttf") 方式二:通过TTFConfig配置(Config配置:如“fonts/Arial.ttf”)来创建
TTFConfig ttfconfig("fonts/Marker Felt.ttf", 36); //配置参数:字体文件路径 字体大小(默认12) 使用的字符集 是否让字体紧凑(默认false) 字体轮廓大小(默认”0″)
auto label2 = Label::createWithTTF(ttfconfig, "this is second label"); //TTFConfig配置 内容 对齐方式 最大文本行宽(0表示不设置)可用于自动换行
label2->setPosition(Vec2(240, 130));
this->addChild(label2);
auto label3 = Label::createWithTTF("this is third label", "fonts/arial.ttf", 20);
label3->setPosition(240, 110);
this->addChild(label3);
auto label4 = Label::createWithTTF("this is fourth label", "fonts/Marker Felt.ttf", 30);
label4->setPosition(240, 90);
// label4->enableShadow(Color4B::GREEN, Size(1, 1)); //阴影
// label4->enableOutline(Color4B::RED, 1); //轮廓: 颜色 , 宽度 仅支持TTF
label4->enableGlow(Color4B::RED);//发光 仅支持TTF
this->addChild(label4);
//createWithCharMap:2.x中的LabelAtlas一般用来显示数字, 也可以来显示其他字符
- 创建CharMap有三种方式:
使用.png图片创建 //每个字符的大小是固定的, 不能设置字体大小, 只能通过setScale()来缩放
使用纹理Texture2D创建
使用.plist创建
1、使用.png图片
//digit.png必须包含你要用的所有字符, 从图片中从左到右,一块一块截取。从字符startCharMap开始一一对应。第一块小图片对应字符startCharMap, 依次往后
Label* lb4 = Label::createWithCharMap(“fonts/digit.png”, 20, 20, ‘0’); //字符资源图片 字符宽 字符高 图片第一个是什么字符
lb4->setString(“123456″); //设置显示的字符串内容
2、使用Texture2D创建 与使用.png图片类似
Texture2D *texture = Director::getInstance()->getTextureCache()->addImage("fonts/digist.png");
Label* lb5 = Label::createWithCharMap(texture, 20, 20, ‘0’);
lb5->setString(“123456″); //设置字符串内容
3、使用.plist创建
Label* lb6 = Label::createWithCharMap(“fonts/digit.plist”);
lb6->setString(“123456″);
- createWithBMFont
这个类使用之前,需要添加好字体文件,包括一个图片文件(*.png)和一个字体坐标文件(*.fnt),这两个文件名称必须一样。可以下载一个fnt编辑工具来自定义字体。
使用 getLetter(i)来获取第i个字符,对其单独设置属性、动作等。 (无法设置字体大小, 用setScale来缩放)
Label* lb7 = Label::createWithBMFont(“bitmapFontTest.fnt”, “123abc”, TextHAlignment:EFT);