Cocos2d-x UI开发之文本类使用实例

cocos2d-x中有三个文本类,用来在屏幕上显示文字,这三个类分别是CCLabelTTF、CCLabelBMFont、CCLabelAtlas。这三个类都继承自抽象类CCLabelProtocol,所以具有了setString()改变文本信息的方法和getString()获得文本信息的方法。

bool HelloWorld::init()
{
 bool bRet = false;
 do
 {

  CC_BREAK_IF(! CCLayer::init());

		CCSize size = CCSizeMake(CCDirector::sharedDirector()->getWinSize().width/3,320);
		//1、CCLabelTTF的定义如下,第一个是要显示的文字,第二个是字体,第三个是字体的大小,第四个是文字标签的尺寸
		//文字标签太小就不能完全的显示字体,太大就浪费了空间,第五个是水平对齐方式,第六个是垂直对齐方式
		/*static CCLabelTTF * 	create (const char *string, const char *fontName, float fontSize,
		const CCSize &dimensions, CCTextAlignment hAlignment, CCVerticalTextAlignment vAlignment)*/
		//2、CCTextAlignment的值可以是:kCCTextAlignmentLeft 	kCCTextAlignmentCenter 	kCCTextAlignmentRight
		//3、CCVerticalTextAlignment的值可以是:kCCVerticalTextAlignmentTop 	kCCVerticalTextAlignmentCenter 	kCCVerticalTextAlignmentBottom
		//4、一般情况下后三个参数是不用的,只需要记住前三个就ok了
		//5、CCLabelTTF继承自CCSprite(就是一张绘制着文字的纹理图片),所以精灵具有的所有功能CCLabelTTF都可以有,包括旋转,缩放什么的
		//6、这三个字体标签都可以通过setString()来改变标签中的内容,但是CCLabelTTF一改变标签中的内容就会重新绘制,浪费了时间和空间,所以在创建了文字就不改变内容的前提下我们使用它
		CCLabelTTF * ttf = CCLabelTTF::create("Hello Cocos2d-x","Arial",32,size,kCCTextAlignmentLeft,kCCVerticalTextAlignmentTop);
		//CCPoint()和ccp(),CCPointMake()的用法一样,功能相同。
		ttf->setPosition(CCPoint(240,160));
		this->addChild(ttf);

		/*首先拷贝E:\cocos2d-x-2.2\cocos2d-x-2.2\samples\Cpp\TestCpp\Resources下的文件fps_images.png到自己
		项目的resource目录下,打开这个.png文件看到的是. / 0 1 2 3 4 5 6 7 8 9这些字体就是我们要显示的字体*/
		//解释一下CCLabelAtlas各个参数的含义
		//第一个参数是我们要显示的内容,这个内容必须包含在我们刚才打开的那张图片中,第二个参数就是资源的名称了
		//第三个参数是该资源中每个字体的大小,即宽度和高度,最后一个参数是这些字体的起始字符
		//解释一下它的显示原理,我们要显示的是2014/2/10,于是程序找到了资源文件fps_images.png,定位到起始字符
		//然后根据2的assic码,和起始字符的assic码相减找到偏移的位置,然后根据宽度和高度取出2,
		//所以资源中的字体的assic码必须是连续的
		//CCLabelAtlas一般使用在显示经常变化的数字的时候比较快,效率高,就像我们显示的那个帧率,就是用的CCLabelAtlas
		CCLabelAtlas * atlas = CCLabelAtlas::create("2014/2/10","fps_images.png",12,32,'.');
		atlas->setPosition(CCPointMake(70,100));
		this->addChild(atlas);
		//不断setString()也只需渲染一次,实现秒表功能的时候经常用到
		atlas->setString("2014/2/11");

		//CCLabelBMFont需要我们使用到资源文件,这些资源文件包含了我们要使用的文字,网上有专门的工具可以制作这些
		//我们需要名称相同的俩个文件,一个以.fnt结尾,就是我们的第二个参数,一个以.png结尾
		//拷贝E:\cocos2d-x-2.2\cocos2d-x-2.2\samples\Cpp\TestCpp\Resources\fonts到我们的resource文件夹
		//第一个参数就是我们要显示的内容,这个内容在那个文件中必须得有,但是中文字体不知道怎么回事,不能显示,留下以后研究吧
		//这个文本类主要是来丰富我们的字体的,可以利用工具做一些好看的字体显示在屏幕上
		//2014里边的每个字体可以看做是单独的一个精灵,可以通过getChildByTag()方法获取
		CCLabelBMFont * font = CCLabelBMFont::create("2014","bitmapFontChinese.fnt");
		font->setPosition(ccp(160,160));
		this->addChild(font);

  bRet = true;
 } while (0);

 return bRet;
}
(0)

相关推荐

  • Cocos2d-x学习笔记之CCLayerColor层的使用实例

    CCLayerColor层的使用方法,写的详细了一些,和上篇文章基本差不多的(查看CCLayer的更多介绍),只不过这次HelloWorld继承自CCLayerColor. bool HelloWorld::init() { bool bRet = false; do { //ccc4这个宏的参数分别为R,G,B,A最后一个是透明度,设置成255就是不透明的,设置成0是透明的 CC_BREAK_IF(!CCLayerColor::initWithColor(ccc4(128,128,128,25

  • Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验

    结论:实践证明这三个东西的默认坐标都是0,0 默认锚点都是0.5,0.5. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCSprite * sprite = CCSprite::create("image1.png"); this->addChild(sprite); //获得CCSprite的默认坐标,CCSprite设置坐标的时候是用自己的锚点位置占据在坐

  • Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系

    cocos2d-x的坐标系很重要,想要学好该引擎,深入理解它的坐标体系很重要.注释写的很清楚了,对照上运行结果一块来看代码吧! bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //opengl的坐标系和世界坐标系相同,都是以屏幕左下角为原点,向右为x轴的增加方向,向上为y轴的增加方向 //这里的世界指的是游戏世界 //屏幕坐标系是以左上角为原点,是我们熟悉的 //本地坐标系也叫节点

  • cocos2d-x学习笔记之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex场景层介绍

    图层在cocos2d-x中很重要,我们可以在其中添加精灵,也可以将图层添加到场景中.这几个图层类功能各不相同,具体的看代码的注释.大家只需要替换掉helloworld中的init函数就可以运行了. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! <a href="http://www.jb51.net/" title="View all posts in CCLayer" clas

  • Cocos2d-x UI开发之文本类使用实例

    cocos2d-x中有三个文本类,用来在屏幕上显示文字,这三个类分别是CCLabelTTF.CCLabelBMFont.CCLabelAtlas.这三个类都继承自抽象类CCLabelProtocol,所以具有了setString()改变文本信息的方法和getString()获得文本信息的方法. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCSize size = CCSize

  • Cocos2d-x UI开发之菜单类使用实例

    菜单是我们在开发中经常用到的元素,cocos2d-x中的菜单基本上是分装了文本类和精灵类,代码注释有详细的说明,看代码吧! bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCLabelTTF * ttf = CCLabelTTF::create("cocos2d","Arial",24); //没有设置坐标,默认放到CCMenu层的中间,第二个参数是

  • python实现的简单文本类游戏实例

    本文实例讲述了python实现的简单文本类游戏实现方法.分享给大家供大家参考.具体实现方法如下: ############################################################ # - My version on the game "Dragon Realm". # - taken from the book "invent with python" by Al Sweigart. # - thanks for a grea

  • Cocos2d-x UI开发之场景切换代码实例

    cocos2d-x中的场景切换是通过导演类调用相应的方法完成的,可以通过CCDirector::sharedDirector()->replaceScene()方法切换场景,参数是要切换的新场景,这种方法会释放掉旧的场景.通过pushScene()切换则是将旧的场景压入到栈中,以便通过popScene()函数出栈,继续运行原场景.刚开始程序启动的时候通过runWithScene()运行一个新的场景.下面通过代码来说明.单击下图可以查看效果. 这次代码一共建立了俩个场景,一个是原来的hellowo

  • Android开发之文本内容自动朗读功能实现方法

    本文实例讲述了Android开发之文本内容自动朗读功能实现方法.分享给大家供大家参考,具体如下: Android提供了自动朗读支持.自动朗读支持可以对指定文本内容进行朗读,从而发生声音:不仅如此,Android的自动朗读支持还允许把文本对应的音频录制成音频文件,方便以后播放.这种自动朗读支持的英文名称为TextToSpeech,简称TTS. 借助于TTS的支持,可以在应用程序中动态地增加音频输出,从而改善用户体验. Android的自动朗读支持主要通过TextTospeech来完成,该累提供了如

  • Cocos2d-x UI开发之CCControlColourPicker控件类使用实例

    CCControlColourPicker实现颜色拾取器的功能.关于控件使用时的一些配置,请参见文章:UI开发之控件类-CCControlButton.下边来看源代码. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //设置一个显示字符串的label CCLabelTTF * title = CCLabelTTF::create("#128128128","A

  • Cocos2d-x UI开发之CCControlPotentiometer控件类使用实例

    CCControlPotentiometer是电位计按钮,和CCControlSlider的用法很相似.关于控件使用时的一些配置,请参见文章:UI开发之控件类-CCControlButton. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(!CCLayer::init()); //CCControlPotentiometer参数是底座,进度条,控制按钮图片资源 CCControlPotentiometer * pote

  • Android界面效果UI开发资料汇总(附资料包)

    简介: Android界面效果UI开发资料汇总 1. Android_UI开发专题.rar 2. android界面效果全汇总.rar 对于Android平台的资源类android.content.res.Resources可能很多网友比较陌生,一起来看看SDK上是怎么介绍的吧,Contains classes for accessing application resources, such as raw asset files, colors, drawables, media or oth

  • Cocos2d-x UI开发之CCControlSlider控件类使用实例

    关于控件使用时的一些配置,请参见文章:UI开发之控件类-CCControlButton.这里只写出源代码,里边的注释对控件的用法有详细的介绍. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //设置一个显示字符串的label CCLabelTTF * title = CCLabelTTF::create("slider value = 0.00","Arial

  • Cocos2d-x UI开发之CCControlSwitch控件类使用实例

    CCControlSwitch是开关按钮,关于控件使用时的一些配置,请参见文章:UI开发之控件类-CCControlButton.以下的演示中出现的key和value代表什么意思,知道的人说一声. bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //参数就不说了,看一下你的资源文件就明白了 CCControlSwitch * controlSwitch = CCControlSwi

随机推荐