Label

//创建普通的文本标签,效果和CCLabelTTF::create(...);一样。TTFConfig是什么?下面会介绍
static Label * create(const std::string& text, const std::string& fontName, float fontSize,
        const Size& dimensions = Size::ZERO, TextHAlignment hAlignment = TextHAlignment::LEFT,
        TextVAlignment vAlignment = TextVAlignment::TOP);

//通过读取TTFConfig配置的方式创建标签,
static Label* createWithTTF(const TTFConfig& ttfConfig, const std::string& text, TextHAlignment alignment = TextHAlignment::LEFT, int lineWidth = 0);

//使用.fnt的方式创建标签,类似CCLabelBMFont:create();    
static Label* createWithBMFont(const std::string& bmfontFilePath, const std::string& text,
        const TextHAlignment& alignment = TextHAlignment::LEFT, int lineWidth = 0, 
        const Point& imageOffset = Point::ZERO);

//使用.png的方式创建标签,类似CCLabelAtlas::create();
static Label * createWithCharMap(const std::string& charMapFile, int itemWidth, int itemHeight, int startCharMap);

virtual void enableShadow(const Color3B& shadowColor = Color3B::BLACK,const Size &offset = Size(2,-2), float opacity = 0.75f, int blurRadius = 0);
virtual void enableOutline(const Color4B& outlineColor,int outlineSize = -1);//只支持TTF
virtual void enableGlow(const Color3B& glowColor);//只支持 TTF 

virtual void disableEffect();//取消所有特效

//特效的种类有一下四种:
enum class LabelEffect {

    NORMAL, //普通标签(纯粹的、脱离了低级趣味的label)
    OUTLINE, //文艺标签(有描边)
    SHADOW, //2B标签  (有阴影)
    GLOW //土豪标签(有荧光)

};
//TTFConfig 是一个结构体,里面包含了你要创建一个ttf的label常用配置,如下所示
typedef struct _ttfConfig
{
    std::string fontFilePath;   //文件路径
    int fontSize;     //字体大小,默认12
    GlyphCollection glyphs;     //使用的字符集,默认DYNAMIC
    const char *customGlyphs;   //呵呵
    bool distanceFieldEnabled;  //我对这个的理解是:是否让文字显得紧凑?默认为false
 int outlineSize;   //字体描边的大小,默认为0

 //构造函数
    ...
 //注意:当outlineSize初始化的值大于0时,distanceFieldEnabled则为false
}TTFConfig;

//GlyphCollection有四种类型:
enum class GlyphCollection {
    DYNAMIC,
    NEHE,
    ASCII,
    CUSTOM
};

以上转载自

http://www.cocoachina.com/bbs/read.php?tid=197179

Label的使用例子

TTFConfig config("fonts/Marker Felt.ttf", 30, GlyphCollection::DYNAMIC, nullptr, false);
    TTFConfig config2("fonts/Marker Felt.ttf",30,GlyphCollection::DYNAMIC, nullptr, true);
    auto label = Label::createWithTTF(config, "ceshi", TextHAlignment::LEFT);
    label->setPosition(Point(300, 500));
    label->enableShadow(Color4B::RED, Size(2, -2), 0.2);//设置阴影
    this->addChild(label,2);
    auto label2 = Label::createWithTTF(config, "ceshi2", TextHAlignment::LEFT);
    label2->setPosition(Point(300, 600));
    label2->enableGlow(Color4B::GREEN); //设置荧光效果
    label2->enableOutline(Color4B(255, 125, 0, 255), 8);//描边,开启了描边,荧光效果就没有了,注意,使用描边效果后,distanceFieldEnabled 将变成 false
    this->addChild(label2, 2);

    auto label3 = Label::createWithCharMap("fonts/constFont.jpg", 30, 40,'/');
    label3->setPosition(Point(300, 700));
    label3->setString("/5");
    this->addChild(label3, 2);

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值