• cocos2dx中创建标签CCLabel的三种方法及特点


    创建标签的三种方式:
    1.CCLabelTTF     (True Type Font,又叫本地字体)
    这是最简单,也是最常用的方式,不依赖于资源文件,也不依赖于某个系统,所指定的字体如果系统没有,则会提供默认的字体,使用相当方便
    创建方式:
    CCLabelTTF *ttf=CCLabelTTF::create("GAME","Courier New",20);//第一个参数表示要显示的标签内容,第二个参数表示要使用的字体,第三个参数表示字体的大小
    如果要使用的字体,系统没有,则会自动替换为系统默认的字体
    例如:
    CCLabelTTF *ttf=CCLabelTTF::create("GAME","abc",20);//显然没有abc这种名字的字体,故系统会自动替换为默认的,而不会显示乱码
    相关的操作:
    设置字体大小:ttf->setFontSize(50);
    更改字体类型:ttf->setFontName("abc");
    更改标签显示的内容:ttf->setString("changer");
    设置字体的填充颜色,在windows平台不支持:ttf->setFontFillColor(ccc3(255, 0, 0));
    设置标记:ttf->setTag(TTF);

    2.CCLabelAtlas

    这种类型的标签依赖于资源文件,需要提供Atlas类型的资源图片,且要显示的内容必须是资源文件中已有的内容,且需要设置每个字符的宽度,高度,和起始的ASCII编码,相当麻烦,如果其中有某一个参数设置错误,则不能正常的显示,但是它显示的颜色很绚丽,这是要付出代价的,代价就是不够灵活,依赖于资源文件

    创建方式:

    CCLabelAtlas *atlas=CCLabelAtlas::create("1234","fonts/labelatlas.png",24,32,'0'); //第一个参数是要显示的内容,第二个参数是要参照的资源文件,要显示的内容必须是在这个资源文件中的内容,第三,四个参数是字体的宽度和高度,第五个参数是资源文件中的内容中的ASCII码

    相关操作: atlas->setTag(ATLAS);//设置标记 其他操作和CCLabelTTF类似

    3.CCLabelBMFont

    这种类型的标签同样依赖于资源文件,需要提供BMFont类型的资源文件和xx.fnt文件,类似于CCSpriteBatchNode,因为CCLabelBMFont就是继承自CCBatchNode,很多东西和精灵集合类似

    创建方式:

    CCLabelBMFont *bm=CCLabelBMFont::create("start","fonts/bitmapFontTest.fnt"); //第一个参数是要显示的内容,第二个参数是要加载的资源文件,类似于.plist文件

    相关操作: 获取所有的子精灵:CCArray *array = bm->getChildren();

    获取某个子精灵:CCSprite *spr=array->objectAtIndex(0);  //即字母'S'

    CCLabelBMFont 中的每一个字符都是一个己加载到CCSpriteBatchNode 中的CCSprite。

    不仅需要提供xx.fnt文件,还要提供xx.png文件,这两个文件缺一不可

  • 相关阅读:
    图论算法之查找强分支
    图论算法之拓扑排序的简单代码
    图论算法之最短路径
    由函数符号找不到联想到的动态链接过程
    linux下cp覆盖原so文件时引起的段错误原因确定
    java 中能否使用 动态加载的类(Class.forName) 来做类型转换?
    为什么java不支持多重继承?
    static inner class 什么时候被加载
    thinking in java 读书笔记 --- overriding private method
    java List排序方法 Comparator和Comparable
  • 原文地址:https://www.cnblogs.com/ttss/p/4082705.html
Copyright © 2020-2023  润新知