:type(t),name(n){}
std::string type;
std::string name;
};
std::stringm_className; //要生成的类名
std::string m_baseClass; //生成类的父类
std::vector
std::vector
std::vector
std::vector
这些信息从什么地方可以获取呢,只用解析cocosbuilder生成的ccb文件就可以得到了。
有了上述的信息,我们再定义一些代码模板,替换和复制代码模板就可以生成相关代码了。 以类的定义生成来说明。类的代码模板如下
[cpp]
// %class_name%.h
//
//
// this code is auto generate by the toolcreated by neo. Email andsonliang@gmail.com
//
//
#ifndef __autogen_ccbuilder__%class_name%__
#define__autogen_ccbuilder__%class_name%__
#include"cocos2d.h"
#include"cocos-ext.h"
class %class_name%
:publiccocos2d::%base_class%
, publiccocos2d::extension::CCBSelectorResolver
, publiccocos2d::extension::CCBMemberVariableAssigner
, publiccocos2d::extension::CCNodeLoaderListener
{
public:
%class_name%()
:%base_class%()
// %class_name%.h
//
//
// this code is auto generate by the toolcreated by neo. Email andsonliang@gmail.com
//
//
#ifndef __autogen_ccbuilder__%class_name%__
#define__autogen_ccbuilder__%class_name%__
#include"cocos2d.h"
#include"cocos-ext.h"
class %class_name%
:publiccocos2d::%base_class%
, publiccocos2d::extension::CCBSelectorResolver
, publiccocos2d::extension::CCBMemberVariableAssigner
, publiccocos2d::extension::CCNodeLoaderListener
{
public:
%class_name%()
:%base_class%()
在生成代码时,读入代码模板,将%class_name%替换为m_className,%base_class%替换为m_baseClass就可以了。