cocos2d 中添加显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)
在 cocos2d 中有三个类可以在层或精灵中添加文字:
- CCLabelTTF
- CCLabelBMFont
- CCLabelAtlas
CCLabelTTF
CCLabelTTF
CCLabelTTF *label =
label->setAnchorPoint(ccp(0, 0));
label->setPosition = ccp(100,100);
这个类使用的是系统中的字体,不需要额外往项目文件中添加字体文件。但如果你有自定义的字体也可以加到项目中,如果无法使用,可以查看一下ccConfig.h中的CC_FONT_LABEL_SUPPORT是否enable了。
CCLabelBMFont
CCLabelBMFont
假设字体文件为:fonts/bmFont.fnt
CCLabelBMFont *label CCLabelBMFont::labelWithString("hello world", "fonts/bmFont.fnt");
layer->addChild(label);
label->setAncherPoint(ccp(0, 0));
label->setPosition(ccp(100,100));
label->setString(" ");
这个没办法指定字体的字号,但可以用 scale 属性进行缩放来调整大小。就当它是sprite。
CCLabelAtlas
如果你用cocos2d项目模板创建过项目,那么你已经看过它的效果了,就是左下角显示帧率的数字。因为帧率一直在变,使用CCLabelTTF的话效率太低,因为只是数字所以也犯不上使用CCLabelBMFont 加载那么大的文字图像,所以使用这个比较合适。
CCLabelAtlas *label = CCLabelAtlas::labelWithString(labelWithString, charMapFile, itemWidth, itemHeight, startChar);
这个只能显示图像上面的字符。
解释一下参数,