我只是一个在沙滩上捡贝壳的小男孩,梦想有一天可以发现知识的真理~~~

coco2d-x 2.1.0 开发小技巧(1)

开发技巧小全集

                          全部经过自己的验证,绝无胡乱粘贴之举。

 

  当前的环境!!mac+xcode7.1+ios模拟器

  技巧是需要在模仿之中不断提升的。

  直觉告诉我,学习这个没有错!!

1.添加闪烁的文字

可以实现那种一闪一闪的欢迎欢迎字体效果

关键代码如下:

 1       //将该代码放入相应的布景当中
 2        
 3       //..........
 4       // 创建一个标题
 5       CCLabelTTF* pLabel = CCLabelTTF::create("HelloWorld", "Thonburi", 34);
 6       // 得到尺寸
 7       CCSize size = CCDirector::sharedDirector()->getWinSize();
 8       // 安排位置
 9       pLabel->setPosition( ccp(size.width / 2, size.height - 20) );
10      //闪烁的文字
11       CCActionInterval *fade = CCFadeOut::create(1.0f);
12       CCActionInterval *fadein=fade->reverse();
13       CCFiniteTimeAction *seq=CCSequence::create(fade,fadein,NULL);
14       CCAction * repeat=CCRepeatForever::create((CCActionInterval*)seq);
15       pLabel->runAction(repeat);
16      //..........

 效果如下:

一闪一闪亮晶晶 ^_^

2.显示各种文字

 cocos2dx中有三个类可以添加文本信息:CCLabelTTF,CCLabelBMFont,CCLabelAtlas

2.1、CCLabelTTF

  CCLabelTTF适合于一次性创建文本后基本上不再改变其显示信息的情况。

  因为CCLabelTTF可以使用setString()函数改变文字内容,而这个时候会创建一个新的opengl纹理,需要重新渲染,这就跟重新创建一个新的CCLabelTTF差不多。

去看例子

1     CCLabelTTF* pLabel = CCLabelTTF::create("一行简单的文字", "Arial", 30);//要显示的内容,字体,字号
2     //这里也可以使用下面方法改变要显示的内容
3     pLabel->setString("新的文字");
4     pLabel->setPosition(ccp(100, 100));
5     this->addChild(pLabel, 1);

2.2、CCLabelBMFont

CCLabelBMFont适合于需要频繁更新的文本内容或者显示好看华丽的文字内容。

CCLabelBMFont是使用图片文件显示文本内容,相当于每次只是改变了图片的坐标,CCLabelBMFont中每个字符都是一个精灵,可以单独获取运行动作。使用这个类的时候,一定要有一个图片文字文件(格式是png)和一个文字坐标文件(格式是fnt),例如:

相应的代码:

1     //要显示的内容,字符坐标文件  .fnt
2     CCLabelBMFont* labelFont = CCLabelBMFont::create("我的文字", "bitmapFontTest.fnt");
3     labelFont->setPosition(ccp(winSize.width/2, winSize.height/2));
4     addChild(labelFont);
5     //CCLabelBMFont中每个字符都是一个精灵,可以用getChildByTag方法获取其中的一个字符作为精灵操作
6     CCSprite* sprite = (CCSprite*)labelFont->getChildByTag(3);
7     sprite->runAction(CCJumpBy::create(2.0f, ccp(0,0), 40, 5));

2.3、CCLabelAtlas

  适合于显示数字信息,例如计分板,排行榜之类。

  要使用这个类,必须要有一个数字图片(格式:png),并且知道每个字符的宽度和高度(在一张图片里进行选区显示),例如:

代码如下

1     //CCLabelAtlas通过png文件作为资源创建文本,参数:显示内容,图片、单个数字宽度、
2     //高度、图片中第一个字符的ASCII码,如字符为".",可以传入46或者'.'都可以。
3     CCLabelAtlas* labelatlas = CCLabelAtlas::create("2013", "a.png", 12, 32, 46);
4     labelatlas->setPosition(ccp(300, 100));
5     addChild(labelatlas);
6     labelatlas->setScale(2.0f);

  注意,一定要十分注意每个文字的大小(十分精确),否者会出现意想不到的错误的

  

 

posted @ 2017-05-08 18:26  瓜不甜  阅读(86)  评论(0)    收藏  举报

全栈开发工程师 - 一只菜鸟的成长之路

这是一位软件开发工程师的个人站,内容主要是网站开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

联系我:2351180282@qq.com