您的位置:首页 > 移动开发 > Cocos引擎

Cocos2dx 3.0 -- 有freeType做靠山的Label

2015-08-24 01:07 519 查看


cocos2dx 3.0版本之前,我们一直都是用CCLabelTTF,CCLabelBMFont,CCLabelAtlas来创建文本标签,但是!3.0版本放出来后...看到这里你心里是不是又颤抖了一下?别害怕嘛,我要说的是:3.0版本出来后这些标签也都是还可以用的啦,只是说我们有了更好的选择。

cocos2dx3.0添加了一种新的文本标签,这种标签不同的地方有:使用freetype来使它在不同的平台上有相同的视觉效果;由于使用更快的缓存代理,它的渲染也将更加快速;同时它还提供了绘边、阴影等特性。

所以因为Label,我决定离开LabelTTF和LabelBMFont(这个开头你猜到了么?)

---------------------------------------------------

常用的接口一览(因为很多接口都与LabelTTFT等一样,所以就列一些我所了解的“异类”)

?
稍微提一下一个新东西:TTFConfig

?
下面简单介绍Label的用法

1、使用.ttf

1)创建

复制代码

TTFConfig config2("fonts/Marker Felt.ttf",30);//初始化TTFConfig,第一个参数为字库的路径,第二个参数为字体大小

auto label2 = Label::createWithTTF(config2,"createWithTTF",TextHAlignment::LEFT);//创建label,并向左对其

label2->setPosition(Point(visibleSize.width/2,300));

label2->setAnchorPoint(Point::ANCHOR_MIDDLE);//设置锚点居中

this->addChild(label2,2);

当然了,也可以用Label创建普通的标签,效果和用CCLabelTTF::create()的一样

复制代码

auto label4 = Label::create("create","Marker Felt",30);//

效果如图所示:



2)另字体看起来紧凑点,也就是设置distanceFieldEnabled = true

直接修改config里的distanceFieldEnabled,方式如下:

复制代码

TTFConfig config2("fonts/Marker Felt.ttf",30,GlyphCollection::DYNAMIC,nullptr,true);//修改config的第五个参数为true



3)设置glow(荧光)效果,(我也不知道该怎么描述glow这词...)

复制代码

label2->enableGlow(Color3B::GREEN);//荧光颜色为绿色

效果如图所示。这里有个地方要注意下,想要显示荧光效果,必须令distanceFieldEnabled = true,否则看不到效果。



4)设置描边

复制代码

label2->enableOutline(Color4B(255,125,0,255),8);//第一个参数为描边的颜色,第二个参数为描边的大小

效果如图所示。注意,使用描边效果后,distanceFieldEnabled 将变成 false,这也意味着在有描边的情况下是显示不了荧光效果的(我想太多了...)



5)设置阴影

复制代码

label2->enableShadow(Color3B::RED,Size(2,-2),0.2,0.5);//第一个参数为阴影颜色,第二个参数为阴影相对于标签的坐标,第三个参数设置透明度,第四个参数与模糊有关



2、使用.fnt 的label

1)创建

复制代码

auto label3 = Label::createWithBMFont("fonts/bitmapFontTest.fnt", "createWithBMFont");

label3->setPosition(Point(visibleSize.width/2,250));

label3->setAnchorPoint(Point::ANCHOR_MIDDLE);

this->addChild(label3,2);

label3->enableShadow();



2)设置阴影(描边和荧光只能用在.ttf 上)

复制代码

label3->enableShadow(Color3B::RED);

效果如图,可以与上图对比一下。



3、使用.png

加入我们有这么一张图,使用方法如下:



1)创建

复制代码

auto label4= Label::createWithCharMap("fonts/costFont.png",30,44,'/');//参数分别为:路径;每个字符的宽和高,起始字符

label4->setPosition(Point(visibleSize.width/2,200));

label4->setAnchorPoint(Point::ANCHOR_MIDDLE);

label4->setString("10");//设置显示的内容为”10“this->addChild(label4,2);



2)设置阴影

复制代码

label4->enableShadow(Color3B::RED);



4、取消所有特效

复制代码

label->disableEffect();//取消所有特效

恩,就介绍到这里。具体的用法可以参考testCpp。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: