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等一样,所以就列一些我所了解的“异类”)
?
?
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); |
复制代码 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);//荧光颜色为绿色 |
4)设置描边
复制代码 label2->enableOutline(Color4B(255,125,0,255),8);//第一个参数为描边的颜色,第二个参数为描边的大小 |
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();//取消所有特效 |
相关文章推荐
- Cocos2d-x中,ProgressTimer类的用法
- Mac架设Cocos2d-JS开发环境问题记录
- Cocos2d相关图书推荐
- Diyal Cocos2d-x 游戏开发系列 从一个图片灰态需求开始
- 【cocos2d-x 3.7 飞机大战】 决战南海I (五) 添加子弹
- 【cocos2d-x 3.7 飞机大战】 决战南海I (四) 敌机管理
- Cocos2d-x 3.3版本及以上版本CCPointZero的改变
- 【cocos2d-x 3.7 飞机大战】 决战南海I (三) 敌机实现
- Cocos2D游戏之旅(六):流星、烟花、火焰、下雪、下雨粒子特效
- 【cocos2d-x 3.7 飞机大战】 决战南海I (二) 我方飞机的实现
- Cocos2d-x 3.X 资源及脚本解密
- cocos2d-x3.x屏蔽遮罩层屏蔽触摸button
- cocos2d-x-3.5 socket编程
- 【cocos2d-x 3.7 飞机大战】 决战南海I (一) 开始界面
- Cocos2d-x 3.3版本以上无法打开包含文件extensions/ExtensionExport.h
- Cocos2d-x中,Speed类的使用
- cocos2dx-3.7 的源码基本目录结构
- cocos2d 移植android遇到的问题
- 在cocos2d引擎中安卓开发引用第三方库(如Opencv)
- Cocos2d-x中,Follow类的使用