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.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。