[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


源文件



数字图片

[cocos2dx笔记013]一个使用CCRenderTexture创建动态纹理显示数字的类

使用样例

        CCPictureNumber * pNum = CCPictureNumber::create();
        
        pNum->BuildNumber(1234567, "ui_play_num05.png");
        pNum->setPosition(200, 200);
        pNum->setAnchorPoint(0, 0);

        this->addChild(pNum, 100);