根据CocosBuilder文件自动生成代码 (三)

2014-11-24 02:44:42 · 作者: · 浏览: 6
ng& n="")
:type(t),name(n){}
std::string type;
std::string name;
};

std::stringm_className; //要生成的类名
std::string m_baseClass; //生成类的父类
std::vectorm_listAssignMember; //需要赋值的场景对象
std::vectorm_listCutomProperty; //需要赋值的自定义变量
std::vectorm_listCContorlCallBack;//menu回调函数名
std::vectorm_listMenuCallBack; //control回调函数名

这些信息从什么地方可以获取呢,只用解析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就可以了。