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文件,这两个文件缺一不可
cocos2dx中创建标签CCLabel的三种方法及特点的更多相关文章
- Linux中创建Daemon进程的三种方法
什么是daemon进程? Unix/Linux中的daemon进程类似于Windows中的后台服务进程,一直在后台运行运行,例如http服务进程nginx,ssh服务进程sshd等.注意,其英文拼写为 ...
- spring中创建bean对象的三种方式以及作用范围
时间:2020/02/02 一.在spring的xml配置文件中创建bean对象的三种方式: 1.使用默认构造函数创建.在spring的配置文件中使用bean标签,配以id和class属性之后,且没有 ...
- 【转载】取得系统中网卡MAC地址的三种方法
From:http://blog.csdn.net/zhangting1987/article/details/2732135 网卡地址这个概念有点混淆不清.因为实际上有两个地址,mac地址和物理地址 ...
- .net中创建xml文件的两种方法
.net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...
- Java中获取键盘输入值的三种方法
Java中获取键盘输入值的三种方法 Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...
- JAVA中创建线程池的五种方法及比较
之前写过JAVA中创建线程的三种方法及比较.这次来说说线程池. JAVA中创建线程池主要有两类方法,一类是通过Executors工厂类提供的方法,该类提供了4种不同的线程池可供使用.另一类是通过Thr ...
- (六)C#中判断空字符串的三种方法性能分析
三种方法分别是: string a=""; 1.if(a=="") 2.if(a==string.Empty) 3.if(a.Length==0) 三种方法是等 ...
- Java中实现线程同步的三种方法
实现同步的三种方法 多线程共享数据时,会发生线程不安全的情况,多线程共享数据必须同步. 实现同步的三种方法: 使用同步代码块 使用同步方法 使用互斥锁ReetrantLock(更灵活的代码控制) 代码 ...
- cocos2d-x 中添加显示文字的三种方式 LabelTTF 、LabelBMFont 和 LabelAtlas
在 cocos2d-x 中有三个类可以在层或精灵中添加文字: LabelTTF LabelBMFont LabelAtlas LabelTTF 直接支持使用 TTF 字库,可以支持全部的中文,但是效率 ...
随机推荐
- iOS小技巧 - 和屏幕等宽的Table分割线
前言 因为本人也是学习iOS才一个多月,在写程序的过程中经常会遇到一些看似应该很简单,但是要解决好却要知道一点小trick的问题. 因此后面会陆续记一些这类问题,一来加深印象,二来也可以做个备忘录. ...
- 让UIScrollView、UITableView的滚动条一直显示
先用xcode5.1.1或更低版本创建一个Category,如图: 然后拷贝以下代码到刚创建的UIImageView+ForScrollView.m文件中: - (void) setAlpha:(fl ...
- part 5 Two way databinding in AngularJS
- SQL_UNPIVOT(行列转换)
--临时表 insert into ##table([column1],S1, S2,S3)VALUES('VALUE','VALUE','VALUE','VALUE') --把原S1, S2,S3列 ...
- Linux学习笔记---【1】
什么是POSIX? 为何说Linux使用POSIX对于开发有很好的影响? POSIX是可携式操作系统接口(Portable Operating System Interface)的缩写,重点在于规范内 ...
- FFT结果的物理意义
图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度.如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低:而对 于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈 ...
- linux中Apache更Nginx环境配置教程
想把Apache2.2换Nginx已经有些日子,今天给动手了.找了个稳定版本:1.4.1 http://nginx.org/download/nginx-1.4.1.zip 配置很简单,就是ngin ...
- BigInteger大数家法源代码及分析
我们可以把一个很大很长的数分成多个短小的数,然后保存在一个数组中,大数之间的四则运算及其它运算都是通过数组完成.JDK就是这么实现的.JDK的BigInteger类里用一个int数组来保存数据: /* ...
- ZigBee协议基本介绍
ZigBee是一种短距离(10~100米).低速率(20~250Kbps).底成本.低功耗的无线网络技术,主要用于近离无线通讯.能够做到在数千个微小的传感器之间相互协调实现通讯,这些传感器只需要很少的 ...
- CString使用
1. 空间分配,如果不是它自己的空间分配方式,需要用函数来手动分配空间,否则大家指向同一块地址,取得内容一样 例子,读取文件到CString ,没有给CString 对象分配空间,而且不是他定义的开拓 ...