博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Label(标签)
阅读量:6423 次
发布时间:2019-06-23

本文共 1953 字,大约阅读时间需要 6 分钟。

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 types2 myLabel->enableShadow();3 4 // outline effect is TTF only, specify the outline color desired5 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));

 

转载于:https://www.cnblogs.com/dudu580231/p/4537643.html

你可能感兴趣的文章
在华为路由器上配置IPv6 over IPv4隧道
查看>>
RDP8.0来了,Windows 7可以升级RDP了
查看>>
当网络安全遇上大数据分析(10)
查看>>
SSD固态硬盘解析和部署注意事项
查看>>
【VMCloud云平台】私有云门户第一朵VM云(六)
查看>>
从爱因斯坦2到爱因斯坦3
查看>>
四、物理优化(5)表和索引分区
查看>>
Exchange日常管理之二十二:配置保留策略
查看>>
JDK在LINUX系统平台下的部署案例与总结
查看>>
zabbix企业应用之监控oracle
查看>>
运维常用表格
查看>>
如何做网课才可以更好地变现?
查看>>
451 4.7.0 Temporary server error. Please try again later. PRX5解决实例
查看>>
Powershell管理系列(十八)PowerShell操作之定时删除过时文件
查看>>
Ext.Net 1.2.0_Ext.Net 中可以直接使用 Ext JS 的方法和属性
查看>>
一句代码解决IE8兼容问题(兼容性视图)
查看>>
《道德经》程序员版第四章
查看>>
winfrom 如何保存datagridview中的某一行数据
查看>>
面向领域驱动的应用开发框架Apworks 2.0发布
查看>>
开发自己的Web服务处理程序(以支持Ajax框架异步调用Web服务方法)
查看>>