COCOS2D(2) CCLabelTTF,CCLabelBMFont,CCLabelAtlas
/*
在 cocos2d 中有三个类可以在层或精灵中添加文字:
CCLabelTTF
CCLabelBMFont
CCLabelAtlas
*/
/*
CCLabelTTF 每次调用 setString (即改变文字)的时候,一个新的OPENGL
纹理将会被创建.。这意味着setString
和创建一个新的标签一样慢。所以,当你需要频繁的更新它们的时候,尽可能的不用去使用标签对象。而应该使用CCLabelAtlas或者是
CCLabelBMFont。
CCLableTTF
这个类使用的是系统中的字体,不需要额外往项目文件中添加字体文件。但如果你有自定义的字体也可以加到项目中,如果无法使用,可以查看一下ccConfig.h中的CC_FONT_LABEL_SUPPORT是否enable了。
labelWithString 就是指生成的这个文字标签的文字“the string of labelttf”, fontName就是字体名称, fontSize是字体大小。
如果需要添加之后需要修改文字,可以使用 setString 方法。
*/
CCLabelTTF *labelttf = [CCLabelTTF labelWithString:@"the string
of labelttf" fontName:@"Helvetica-BoldOblique" fontSize:12];
labelttf.position = ccp(100, 300);
[self addChild:labelttf];
/*
这个类使用之前,需要添加好字体文件,包括一个图片文件 (**.png) 和一个 字体坐标文件 (**.fnt)。在
cocos2d的示例项目中有现成的。可以先拿过来练习一下,找的时候注意两个文件的名称是相同的,只是扩展名不同。就在cocos2d-iphone-
2.0里的resource文件夹里的font里。
labelWithString 同上面一样,也是指定文字。 fntFile是文件名,写扩展名是 .fnt的那个。
*/
CCLabelBMFont *labelbmf = [CCLabelBMFont labelWithString:@"the string of labelbmf" fntFile:@"helvetica-32.fnt"];
labelbmf.position = ccp(150, 250);
[self addChild:labelbmf];
/*
如果你用cocos2d项目模板创建过项目,那么你已经看过它的效果了,就是左下角显示帧率的数字。因为帧率一直在变,使用CCLabelTTF的话效率
太低,因为只是数字所以也犯不上使用 CCLabelBMFont 加载那么大的文字图像,所以使用这个比较合适。
labelWithString就是字符, charMapFile
就是字符的图像文件(这个只要图像文件就可以了),itemWidth是每个字符的宽度,itemHeight是每个字符的高度,这个不能设错,否则显示
的时候可能就不对了。 最后一个是起始字符,它是使用这个其实字符来对应字符和图像关系的。
*/
CCLabelAtlas *label1 = [CCLabelAtlas labelWithString:@"123 Test"
charMapFile:@"tuffy_bold_italic-charmap.png" itemWidth:48 itemHeight:64
startCharMap:' '];
label1.position = ccp(10,100);
[self addChild:label1];