《Cocos2d 跨平台游戏开发指南(第2版)》一2.3 使用CCLabel添加文本

简介:

本节书摘来异步社区《Cocos2d 跨平台游戏开发指南(第2版)》一书中的第2章,第2.1节,作者: 【印度】Siddharth Shekar(谢卡)译者: 武传海 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 使用CCLabel添加文本

在这一部分,我们将学习如何向场景中添加文本。在Cocos2d中,有两种方法可以用来向场景中添加文本:一种是使用CCLabelTTF类,另一种是使用CCLabelBMFont类。我们将在本书第9章的Glyph Designer一节中讲解CCLabelBMFont,本部分我们只讲解CCLabels,了解一下它们是如何工作的。

2.3.1 准备工作

CCLabelTTF使用Mac系统中现有的系统字体。在使用CCLabelTTF类时,我们只需指定要使用的字体名称、希望显示的文本以及字体大小,就能轻松地以指定的字体、大小显示给出的文本。

请注意,有些字体虽然已经安装到系统中,但是仍然无法在游戏中使用。这是因为Cocos2d只支持一部分系统字体。如果你想添加列表中没有的系统字体,就需要手动添加它。

2.3.2 操作步骤

添加好背景图像之后,紧接着添加如下代码:

CCLabelTTF *mainmenuLabel =
  [CCLabelTTF labelWithString:@"Main Menu"
  fontName:@"AmericanTypewriter-Bold"
  fontSize: 36.0f];

mainmenuLabel.position =
  CGPointMake(winSize.width/2,
  winSize.height * 0.8);
[self addChild:mainmenuLabel];

在上述代码中,我们先创建了一个CCLabelTTF类型的mainmenuLabel变量,调用labelWithString函数,并传入3个参数,分别是要显示的文本、字体名称以及字体大小。

然后,设置文本位置,横坐标为宽度的一半,纵坐标是高度的80%(从屏幕底部算起),所以给定的文本最终出现在整个屏幕中间偏上的位置上。

最后,我们把mainmenuLabel添加到场景之中。

在示例代码中,我们使用了AmericanTypeWriter-Bold字体。完整的字体列表可以在SpriteBuilder.app的FontListTTF.plist文件中找到,在我们程序文件中的具体位置为/Applications/SpriteBuilder.app/Contents/Resources/FontListTTF.plist。

2.3.3 工作原理

CCLabelTTF的工作方式类似于精灵,你可以修改它的位置或旋转它,甚至对它进行缩放操作(见图2-2)。


2_2

2.3.4 更多内容

你也可以向文本字体添加阴影与描边。在把文本添加到场景之后,紧接着添加如下代码:

//adding shadow

mainmenuLabel.shadowColor =
  [CCColor colorWithRed:0.0 green:0.0 blue:1.0];
mainmenuLabel.shadowOffset = ccp(1.0, 1.0);
//adding outline
mainmenuLabel.outlineColor =
  [CCColor colorWithRed:1.0 green:0.0 blue:0.0];

mainmenuLabel.outlineWidth = 2.0;

阴影颜色属性用来为阴影添加颜色,在示例代码中,我们使用阴影颜色属性把阴影设置为蓝色。此外,我们还需要设置阴影偏移,否则阴影将会被文本覆盖掉而变得不可见。

类似地,描边颜色属性(outlineColor)用来设置文本描边颜色(见图2-3),描边粗细属性(outlineWidth)用来设置文本轮廓线的粗细,默认值为1.0f。


2_3

相关文章
|
Linux 虚拟化 Windows
centos7.x 查询不到ip地址显示【解决办法】
centos7.x 查询不到ip地址显示【解决办法】
1272 0
centos7.x 查询不到ip地址显示【解决办法】
|
自然语言处理 索引 算法
HanLP分词命名实体提取详解
文本挖掘是抽取有效、新颖、有用、可理解的、散布在文本文件中的有价值知识,并且利用这些知识更好地组织信息的过程。对于文本来说,由于语言组织形式各异,表达方式多样,文本里面提到的很多要素,如人名、手机号、组织名、地名等都称之为实体。
7788 0
|
2月前
|
存储 缓存 5G
鸿蒙 HarmonyOS NEXT端云一体化开发-云存储篇
本文介绍用户登录后获取昵称、头像的方法,包括通过云端API和AppStorage两种方式,并实现上传头像至云存储及更新用户信息。同时解决图片缓存问题,添加上传进度提示,支持自动登录判断,提升用户体验。
146 1
|
计算机视觉
MATLAB数字图像处理 实验三:空域频域图像去噪与锐化
MATLAB数字图像处理 实验三:空域频域图像去噪与锐化
796 0
MATLAB数字图像处理 实验三:空域频域图像去噪与锐化
|
前端开发 测试技术 Linux
宇宙最强API接口调试工具Apipost
对于开发和测试同学来说,最重要的是有一款量身定制的接口调试工具,俗话说:磨刀不误砍柴工。有一款好的调试工具,可以让我们的开发工作事半功倍。 Apipost是一款支持后端、前端、测试同时在线编辑,内容实时同步,15人以下的团队和个人完全免费,针对高校和培训机构也是完全免费的,企业也可以根据需要进行私有化部署。
581 0
宇宙最强API接口调试工具Apipost
|
存储 Kubernetes 应用服务中间件
K8S的StorageClass实战(NFS)
在使用helm过程中,发现很多chart都需要持久化存储资源,因此在K8S环境提前准备好StorageClass是很有必要的
1656 0
K8S的StorageClass实战(NFS)
|
机器学习/深度学习 人工智能 弹性计算
MLPerf基准:阿里RISC-V处理器语音唤醒推理技术方案
4月7日,AI基准测试 MLPerf™ Tiny Benchmark结果公布,阿里巴巴在嵌入式语音唤醒场景中提交的方案较好地平衡了推理任务中的准确率与延时,保证准确率90.7%情况下耗时最短。 本文介绍该方案在NN Compiler和RISC-V指令集等软硬一体加速技术方面的实践。
511 0
MLPerf基准:阿里RISC-V处理器语音唤醒推理技术方案
|
资源调度 计算机视觉
CV10 图像模糊(均值、高斯、中值、双边滤波)
当我们只想得到感兴趣的物体时,通过图像模糊,可以将那些尺寸和亮度较小的物体过滤掉,较大的物体则易于检测。除了降低噪声,这就是图像平滑(模糊)的另一个重要应用:减少噪点,突出ROI,以便目标提取。
743 0
|
JavaScript IDE API
Vue3.x <script setup> 语法糖详解,助力快速上手Vue3.x【值得收藏】
Vue3.x <script setup> 语法糖详解,助力快速上手Vue3.x【值得收藏】
1466 0
Vue3.x <script setup> 语法糖详解,助力快速上手Vue3.x【值得收藏】