cocos2d-x 编写的金币显示板(单个数字的)
2013-07-15 15:58
141 查看
前言:别管什么游戏都会有一个显示金币的面板,用于显示当前有多少钱什么的,之后用这些钱可以去买点装备,药水什么的,自己编写了一个用于显示金币的面板,只是实现了基本的功能,只能显示一个数字,当然了大家可以多创建几个,随后我将把我完整的显示板写出来,供大家参考大家先看看效果:1.代码编写
// // NumberSprite.h // ShowNumberNodeTest // // Created by Za aa on 13-7-14. // // #ifndef __ShowNumberNodeTest__NumberSprite__ #define __ShowNumberNodeTest__NumberSprite__ #include "cocos2d.h" USING_NS_CC; class NumberSprite : public CCSprite { public: /* 创建一个数字精灵 参数: pTexture: 包含所有数字图片的图片 width; 单个数字显示的图片宽度 lenght; 数字显示高度 */ static NumberSprite * CreateNumberSprite(CCTexture2D *pTexture,float width,float lenght); /* 直接显示数字 参数: num 是显示的数字图片序号 isanimation:是否显示动画 */ void f_ShowNumber(int num); /* 带动画显示数字 参数: startnum:开始的图片序号 endnum:滚动到的图片序号 dt:动画的时间 */ void f_ScrolltoNumber(int startnum,int endnum,float dt); /**初始化 */ bool myInit(float width,float lenght); /**更新图片,生成动画,根据时间调用*/ void logic(float dt); private: /** 保存输入的图片宽高,用于显示滚动数字或是直接显示数字*/ //保存显示图片宽度 float s_width; //保存图片高度 float s_lenght; /**d当前显示的图片序号*/ int s_ImagesNum; // 终止显示的图片序号,动画用 int s_EndNum; }; #endif /* defined(__ShowNumberNodeTest__NumberSprite__) */
//// NumberSprite.cpp// ShowNumberNodeTest//// Created by Za aa on 13-7-14.////#include "NumberSprite.h"bool NumberSprite::myInit(float width, float lenght){s_width = width;s_lenght = lenght;}NumberSprite *NumberSprite::CreateNumberSprite(CCTexture2D *pTexture, float width, float lenght){NumberSprite *pobSprite = new NumberSprite();if (pobSprite && pobSprite->initWithTexture(pTexture) ){pobSprite->setVisible(false);pobSprite->myInit(width , lenght);pobSprite->autorelease();return pobSprite;}CC_SAFE_DELETE(pobSprite);return NULL;}void NumberSprite::f_ShowNumber(int num){s_ImagesNum = num;this->setVisible(true) ;this->setTextureRect(CCRectMake(s_width * num, 0, s_width, s_lenght));}/*带滚动显示数字注意:这个函数使用时,必须已经显示了一次数字,也就是必须调用了一次shownumber,或是scrollnumber参数:endnum: 需要显示的数字,滚动终止数字dt:变换数字时间*/void NumberSprite::f_ScrolltoNumber(int endnum, float dt){s_EndNum = endnum ;schedule(schedule_selector(NumberSprite::logic),dt);}void NumberSprite::f_ScrolltoNumber(int startnum, int endnum, float dt){s_ImagesNum = startnum;s_EndNum = endnum;schedule(schedule_selector(NumberSprite::logic), dt);}/**更新图片,生成动画,根据时间调用*/void NumberSprite::logic(float dt){if (s_ImagesNum > 9 ){s_ImagesNum = 0;}f_ShowNumber(s_ImagesNum);if (s_ImagesNum == s_EndNum){this->unscheduleUpdate();return;}s_ImagesNum++;}2.使用例子
void HelloWorld::addNumberSprite(){CCSpriteBatchNode *batchNode = CCSpriteBatchNode::create("menublood_num.png");batchNode->setPosition(ccp(100,100));this->addChild(batchNode);NumberSprite * nsp = NumberSprite::CreateNumberSprite(batchNode->getTexture(),22,33);batchNode->addChild(nsp);// nsp->setPosition(ccp(100,100));nsp->f_ScrolltoNumber(0,9,0.1f);//nsp->f_ShowNumber(1);}
相关文章推荐
- cocos2d-x 图片数字显示,可用于计分板,金币显示板等
- java实现数据结构练习题--仅使用处理单个数字的I/O例程,编写一个过程以输出任意实数(可以是负的)
- 仅使用处理单个数字的I/O例程,编写一个过程以输出任意实数(可以是负的)
- 如何编写C语言程序判断一个字符是否是字母或数字
- 编写程序数一下 1到 100 的所有整数中出现多少次数字9
- 编写程序检查某一个整数中是否有重复的数字
- :有一个卡车司机肇事后想逃跑,但是被三个人看见了其车牌号,但是都没看全, 甲说:车牌的前两位是一样的;乙说:车牌的后两位是一样的,但与前两位不一样; 丙说:车牌是一个数字的平方,请编写一个程序计算
- 编写一个能将给定非负整数数组中的数字排列成最大数字的函数
- 利用创建型工厂方法模式编写小写数字金额转换为人民币大写C#代码。
- C语言中关于取三位数的各各位数的单个数字问题
- 自行编写数字转换成字符串Myatoi()函数
- 编写一个程序,数一下1—100的所有整数中出现多少次数字9
- 编写程序计算1到1000的整数各位数字之和
- 编写程序数一下1到100的所有整数中出现了多少次数字9
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)
- 用c++编写程序。在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同。
- 编写程序数一下 1到 100 的所有整数中出现多少次数字9
- Cocos2d-X游戏【泰然网《跑酷》】JS到C++移植10:Adding Coins and Rocks【添加金币和障碍物】
- Cocos2d-x 3.2编写常用UI组件(四)发光的标题BlinkTitile
- cocos2d-x 左下角的FPS,3行数字分别表示什么?