【转】COCOS2D-X之不断变化的数字效果Demo

我们在玩"天天爱消除"或"天天连萌"的时候,每玩一盘后会有一个游戏结果界面,上面有一个显示所得分数的效果.今天我们这个Demo就是要实现与之相近的效果.

一、我们直接在COCOS2D-X自带的HelloCpp的工程中添加代码即可.我们在初始化中添加如下代码:

  1. CCSize szWin = CCDirector::sharedDirector()->getVisibleSize();  
  2. CCLabelAtlas *pNumLabl = CCLabelAtlas::create("0123456789", "fonts/fonts.plist");//这里是图字的Plist文件  
  3. addChild(pNumLabl,0,1000);  
  4. pNumLabl->setPosition(ccp(szWin.width/2-200,szWin.height/2));  
  5. schedule(schedule_selector(HelloWorld::step));//定时器  
二、然后我们需要实现一个定时器所调用的函数.代码如下:
  1. void HelloWorld::step(float Dt)  
  2. {  
  3.  static int nDelta = 0;//注意这个静态局部变量只会初始化一次  
  4.  nDelta += 11;         //注意此处未做溢出处理.对具体情况做对应处理  
  5.  char StringOfNum[20];  
  6.  sprintf(StringOfNum,"%03d",nDelta);  
  7.  CCLabelAtlas* pNumLabl = static_cast<CCLabelAtlas *>(getChildByTag(1000));  
  8.  pNumLabl->setString(StringOfNum);  
  9. }  
三、补充说明

①、在创建CCLabelAtlas对象的时候,我们传递的是图字的Plist文件,此处不能直接将fonts.plist文件放在Resource文件夹下.必须是这样的路径:resource/XXX/fonts.plist.原因如下:

  1. bool CCLabelAtlas::initWithString(const char *theString, const char *fntFile)  
  2. {  
  3.   std::string pathStr = CCFileUtils::sharedFileUtils()->fullPathForFilename(fntFile);  
  4.   std::string relPathStr = pathStr.substr(0, pathStr.find_last_of("/"))+"/"; //COCOS2D-X并木有对此处未找到"/"的情况做相应处理  
  5.   ************************************省略的代码************************************  
  6. }  

②、程序中所涉及的图字文件下载链接http://t.cn/z863wnj

PS:因为是基础学习,故不作过多分析.后继会有更多精彩内容,敬请大家关注害羞

本人郑重声明如下 一、本文来自CSDN博客,本文地址http://t.cn/z863ASQ 二、All Rights Reserved. 任何个人或网站转载本文时不得移除本声明. 三、不得对文章进行修改,除非明确说明.同时欢迎大家评论转载和分享.

转载于:https://www.cnblogs.com/Androider123/p/3914906.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值