购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 文字类

在一个游戏中,文字涉及方方面面,游戏剧情的介绍、角色的对白、信息的提示等。引擎提供了3 种方式来实现文字的处理,第一种方式有3 个类,分别是LabelTTF、LabelAtlas和 LabelBMFont;第二种方式全部由 Label 类完成;第三种方式则是使用 Widget 的子类Text、TextAtlas 和 TextBMFont 完成。这 3 种方式实现的结果一样,只是处理方式不同。每种方式又包括 3 种文字的创建,分别是使用系统字体或 TTF 字体来创建;使用一张图片来创建,图片中的每个字符都有固定的宽和高;使用图片和对应的配置文件来创建,图片中每个字符的宽和高可以变化,配置文件中存储着各个字符的信息。

2.3.1 LabelTTF方式

使用TTF创建,由3个类来完成,分别是LabelTTF、Label和Text,具体实现如程序片段2-31所示。

程序片段2-31 TTF创建方式

运行后,显示效果如图2-16所示。

图2-16 TTF创建显示效果图

2.3.2 LabelAtlas方式

使用LabelAtlas方式创建时,文字在图片中的宽度与高度都应该一样,每个字符在 ASCII 表中是连续的,一般用来创建数字等文字。例如,使用Font.png 来创建,该图片中是0~9 的数字,具体实现如程序片段2-32所示。

程序片段2-32 LabelAtlas创建方式

程序片段2-32对应的效果如图2-17所示。

2.3.3 LabelBMFont方式

LabelBMFont 方式,有两个资源文件。一个是图片文件,它包含各个字符显示的信息;一个是 fnt 文件,它是一个配置文件,包含图片中各个字符的基本信息,如字符在图片中的起点坐标、宽度和高度等。例如,在窗口中显示 COCOS2D-X 字符,是实现如程序片段2-33所示。

图2-17 LabelAtlas方式

程序片段2-33 LabelBMFont创建方式

程序片段2-33对应的效果如图2-18所示。

图2-18 LabelBMFont方式

引擎的 3.5 版本中,建议使用 Label 来创建这 3 种文字的显示方式,不建议使用 LabelTTF、LabelAtlas 和 LabelBMFont 这 3个类,而 Text 相关的 3 个类是继承自 Widget 类的,该类下的子类实现了许多其他相关的UI控件,如按钮、复选框、进度条等,这些控件相关类统一放在命名空间ui下。

使用TTF 字体来创建,只要是字库中的字体,都是可以显示的,但字体形状是固定的。其他两种方式创建的文字,因为都存储在图片中,所以显示的文字有限,一般用于特殊用途。但是这两种方式创建的字体,可以使用任何形式的美术字。

使用 Label 类来创建 TTF 文字时,既可以使用系统自带的字库,也可以使用我们自己的 TTF 字库。前者使用函数 createWithSystemFont 来创建,后者使用函数 createWithTTF来创建。后者使用的字库必须作为一种资源包含到我们自己的游戏包中,而前者就没有这个要求。 JBY3jRdgaH6nOPEAaukffcvqHBaCAAwt3SkExHNYD6Pw6LPoipbzsXf1hjnp7T9r

点击中间区域
呼出菜单
上一章
目录
下一章
×