zoukankan      html  css  js  c++  java
  • Label(标签)

    Label(标签)

    Cocos2d-x中提供了Label(标签)对象来创建TTF、BMFont和SystemFont文本。

    Label BMFont(BMFont标签)

    BMFont是使用位图字体的标签类型。位图字体是由点或像素矩阵所组成,这些点和像素代表了字符图形的外形和大小。位图字体的使用很方便也很容易,但它不可伸缩,其每个尺寸都需要一个单独的字体。

    Label类是SpriteBatchNode的子类,所以Label的每个字符都可以看作一个Sprite(精灵),都具有旋转、缩放、着色,改变锚点以及其他继承自Node对象的属性。

    创建一个BMFont文本需要两个文件:一个.fnt文件和一个显示每一个对象的.png格式的图片。利用像Glyph Designer这样的工具可以自动创建该类型的文件。

    创建一个BMFont文本:

     1 auto myLabel = Label::createWithBMFont("myFont.fnt", "My Label Text"); 

    字符串内所有的字符都要包含在MyFont.fnt文件中,否则它们将不会被渲染。假设渲染一个缺少字符的Label,那么就要确保它们都在你的MyFont.fnt文件中。

    Label TTF(TTF标签)

    TTF是一个 True Type Font 的标签类型。创建TTF标签你需要指定一个.ttf格式的字体文件名、文本字符串以及字体大小。与BMFont不同,TTF可以改变字体的显示大小,无需单独的字体。

    创建一个TTF标签:

     1 auto myLabel = Label::createWithTTF("myFont.ttf", "My Label Text", 16); 

    尽管TTF标签比BMFont更灵活,但它的效率是更低的,并且修改如字形和大小等属性都是一个复杂的操作。如下为使用TTF创建Label的示例:

    如果你需要一些具有相同属性的TTF标签,你可以通过创建一个TTFConfig对象来管理它们。TTFConfig允许你为所有的TTF标签设置共同的属性。如下:

     1 // create a TTFConfig files for labels to share
     2 TTFConfig labelConfig;
     3 labelConfig.fontFilePath = "myFont.ttf";
     4 labelConfig.fontSize = 16;
     5 labelConfig.glyphs = GlyphCollection::DYNAMIC;
     6 labelConfig.outlineSize = 0;
     7 labelConfig.customGlyphs = nullptr.
     8 labelConfig.distanceFieldEnabled = false;
     9  
    10 // create a TTF Label from the TTFConfig file;
    11 auto myLabel = Label::createWithTTF(labelConfig, "My Label Text");

    TTFConfig还可以用于显示中文、日文和韩文字符。

    Label SystemFont(系统字体标签)

    SystemFont是一个使用系统默认的字体和尺寸的标签类型。意思就是说我们不能修改字体的属性,你可以理解为是一种系统字体,系统规则。创建一个SystemFont标签:

     1 auto myLabel = Label::createWithSystemFont("My Label Text", "Arial", 16); 

    标签效果和排版

    标签效果

    Label对象有一些实话它们的特效效果。当然,不是所有的标签类型都支持所有的特效。这些特效包括阴影、轮廓和光晕效果。

    1 // shadow effect is supported by all Label types
    2 myLabel->enableShadow();
    3 
    4 // outline effect is TTF only, specify the outline color desired
    5 label->enableOutline(Color4B(100, 50, 100, 100));
    6 
    7 // glow effect is TTF only, specify the glow color desired.
    8 label->enableGlow(Color4B(100, 50, 100, 100));
  • 相关阅读:
    【需求征集系统】打卡(五)
    【需求征集系统】打卡(五)
    《需求分析与系统设计》阅读笔记(一)
    每周总结【2020/10/24】————Redis与Mongodb初学
    【需求征集系统】打卡(四)
    【需求征集系统】打卡(三)
    初步自学Java小结
    关于“教室派”APP的使用报告和相关建议
    冲刺第一天
    结对开发之求环形数组的最大值
  • 原文地址:https://www.cnblogs.com/dudu580231/p/4537643.html
Copyright © 2011-2022 走看看