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);

原文地址:https://www.cnblogs.com/lion-witcher/p/5994379.html