[cocos2dx笔记013]一个使用CCRenderTexture创建动态纹理显示数字的类
用CCLabelTTF显示的数字不好看。于是就想到用图片来代理。眼下网上的实现都是把每一个数字做一个CCSprite组合的方式。
可是我想。动态生成纹理的方式。没有就仅仅好自己手动写一个。
头文件
#ifndef _X_NUMBER_H_ #define _X_NUMBER_H_ #include <cocos2d.h> #include <xtype.h> namespace cocos2d { //基于图片显示的数字 /* 这个类不是用一个一个数字拼起来,而是渲染成一个独立的纹理 zdh::XDDWord是一个64位无符号整数 */ class CCPictureNumber : public CCSprite { public: typedef CCSprite Inherited; public: CCPictureNumber(); ~CCPictureNumber(); virtual bool init(void); int BuildNumber(zdh::XDDWord paramNumber, const char * paramNumberResName); int BuildNumber(zdh::XDDWord paramNumber, CCTexture2D * paramTexture); int BuildNumber(zdh::XDDWord paramNumber); CREATE_FUNC(CCPictureNumber); void setNumberTexture(CCTexture2D * paramTexture); void setNumberTexture(const char * paramNumberResName); CCTexture2D * getNumberTexture(); zdh::XDDWord getNumber() const; void setNumber(zdh::XDDWord paramNumber); int Build(); private: CCTexture2D * m_NumberTexture; zdh::XDDWord m_Number; }; } #endif
源文件
数字图片
使用样例
CCPictureNumber * pNum = CCPictureNumber::create(); pNum->BuildNumber(1234567, "ui_play_num05.png"); pNum->setPosition(200, 200); pNum->setAnchorPoint(0, 0); this->addChild(pNum, 100);