• CCLabelTTF、CCLabelAtlas和CCLabelBMFont的区别


    转自:http://blog.sina.com.cn/s/blog_67a5e47201018tj8.html

    在Cocos2d以及Cocos2d-x中,我们经常会用到CCLabelTTF以及CCLabelAtlas在层或精灵中添加文字。

    其实总共有三个添加文字的类,另外一个是CCLabelBMFont,我用的不怎么多。
     
    1. CCLabelTTF
    CCLabelTTF::labelWithString(const char *label,          //文字内容  
                                const CCSize& dimensions,   //范围 CCSize(0,0)默认大小  
                                CCTextAlignment alignment,  //对齐方式 0左 1中 2右  
                                const char *fontName,       //字体名  
                                float fontSize              //字号)
    CCLabelTTF是CCTextureNode的子类,通过系统字体生成label。
    CCLabelTTF对象渲染比较慢,每次调用setString的时候,一个新的OpenGL纹理将被创建,这意味着setString和创建一个新的标签一样慢,所以当需要频繁更新label的时候,应该选择另外两种文字类。
     
    由于CCLabelTTF这个类使用的是系统中的字体,不需要额外往项目文件中添加字体文件。但如果你有自定义的字体也可以加到项目中,如果无法使用,可以查看一下ccConfig.h中的CC_FONT_LABEL_SUPPORT是否enable了。
     
    2. CCLabelAtlas
    CCLabelAtlas::labelWithString(const char *label,         //标签文字内容  
                                  const char *charMapFile,   //图片路径  
                                  unsigned int itemWidth,    //元素的宽度  
                                  int unsigned itemHeight,   //高度        
                                  unsigned char startCharMap //起始的字符)
    引擎模板里面左下角显示帧率的数字,就是利用CCLabelAtlas来实现的。因为帧率一直在变。
    每个字符的高度和宽度不能设置错误,否则显示的时候可能就不对了。最后一个起始的字符用来对应字符和图像的关系的。
     
    3. CCLabelBMFont
    CCLabelBMFont::labelWithString(const char *str,   
                                   const char *fntFile)
    它是CCSpriteSheet的一个子类,对每一个字符就像一个CCSprite来对待,因此每个单独的字符可以进行旋转、缩放、设置透明等操作。
    所有字符都是使用anchorPoint(0.5, 0.5),所以最好不要更改它,会影响渲染。
     
    使用该类之前,需要添加好字体文件,包括一个图片文件(AA.png)和一个字体坐标文件(AA.fnt)。两个文件的名称相同,只是扩展名不同。
     
    CCLabelBMFont的改变相当于每次只改变图片坐标。
  • 相关阅读:
    我的那些年(11)~去一家创业公司做架构师
    springboot~hazelcast缓存中间件
    我的那些年(10)~来到更大的团队,做了架构师
    springboot~maven制作底层公用库
    Vesions ignore & ld: library not found for -l...
    iOS利用单例实现不同界面间的数据传输
    UVA 10006
    VS2010打开就自动关闭问题解决
    模板方法模式(Template Method)
    HDU 4279
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/3275231.html
Copyright © 2020-2023  润新知