通过ccb(CocosBuilder)文件生成cocos2dx代码
在C++下使用ccb。绑定调用,成员变量。让人头疼又easy犯错。
自己用pythong写了个小程序,通过ccb文件直接生成C++代码
python我用的不多。又是随性所做。代码质量就非常差。大家多多包容吧。
一共包含三个文件,codeGen.py, myCommon.py ,genCpp.py
执行codeGen.py。
myCommon.py中包含一些配置信息,依据详细项目自己改动
class projectinfo:
def __init__(self):
self.projectName='FishingJoyForCcb' #项目的名称
self.customSubclass={<span style="white-space:pre"> #这个是自定义的父类,ccb文件里不会有这些信息,仅仅好在这里加上,前key是子类 value是父类
#sample 'Coin':'GameObject' subclassName : superclassName
#'Coin':'GameObject'
} self.ownerClass={<span style="white-space:pre"> #当成员 和回调方法的为owner类型的时候,能够在这里指定owner class。这样在ccb中定义的方法和成员变量就会在owner class中申明
#sample 'ownerClass': [className1,className2 ....]
#'Coin':['Match3Level']
} #self.ccbPath='/Users/dev/cocos2d-x-2.2.3/projects/FishingJoyForCcb/ccb_source'
#self.classPath='/Users/dev/cocos2d-x-2.2.3/projects/FishingJoyForCcb/Classes'
self.ccbPath='./' #ccb文件的文件夹 与在命令行路径一样。命令行优先 ,默觉得当前文件夹
self.classPath='./' #cpp 文件的文件夹 与在命令行路径一样,命令行优先 ,默觉得当前文件夹</span> self.ccbTargetType=['None','RootDocument','Owner']
self.ccbCustomPropertiesType=['int' ,'float','bool' ,'std::string' ] # className : classInfo
self.classDictionary={}
命令行
python codeGen.py -c ./ -o ./ Coin Fish
-c,-ccbpath : ccb file path
-o,-outputpath, --generator cpp file path
跟myCommon.py中定义的一个意思
最后能够跟上须要生成类的名称。没有不论什么类名,就生成ccb文件夹下的全部类。
成员变量我习惯加m_的前缀。因为程序写的烂,这个地方不太好改。大家凑合吧。
因为我自己主动给成员变量加了前缀,这样在ccb定义的时候就不用加前缀了,大写开头的变量名就能够了
比如:Type
这样就会生成
int m_Type 的成员变量
和 int getType() 与 void setType(int value)的方法
自己主动生成代码才项目初期非常好用。后期不好维护。使用的时候做好规划。
ccb的扩展属性假设是string类型。我这里好像有些问题,大家使用当心。
通过ccb(CocosBuilder)文件生成cocos2dx代码的更多相关文章
- XML文件生成C++代码(基于rapidxml)
简述 与XML文件生成C++代码(基于pugixml)中的功能一致,只是这里改用的rapidxml来实现.就不多说了,直接放代码. 代码 #include "rapidxml-1.13/ra ...
- java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例
1.先下载cxf包https://download.csdn.net/download/suizhikuo/108112362.解压缩包,通过cmd命令进入到bin目录下(cd cxf\bin的路径) ...
- XML文件生成C++代码(基于pugixml)
简述 在一个项目中需要用到XML的解析和生成,知乎上有人推荐rapidxml和pugixml等库.RapidXML一看库还比较大,就先研究一下pugixml了. 因为对解析XML的需求不大(都是一些很 ...
- 根据wsdl文件生成java代码
具体操作步骤: 1. 运行cmd命令 输入 C:\jdk-1_6_0_31\bin (根据自己的JDK的安装位置而定) 2. 新建gen.bat文件 3. gen.bat文件内容为:wsimpo ...
- wsdl 生成 java 代码 java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例 推荐使用, 并且设置了 utf8
推荐使用, 并且设置了 utf8 wsdl2java -p cn.smborderservice -encoding utf-8 -d f:\logink\src -all -autoNameRes ...
- 使用Apache CXF根据wsdl文件生成代码
1.去官网下载,我用的是apache-cxf-2.5.10.zip 2.解压 3.通过命令行进入Apache CXF的bin目录,如我的目录是D:\BIS\axis2\apache-cxf-2.7.1 ...
- 使用jsonschema2pojo-maven-plugin 插件根据json文件生成代码
jsonschema2pojo 是一个不错的工具,可以帮助我们快速的根据json 文件生成pojo代码,提高开发效率,以下为简单的 使用maven 插件进行代码生成 使用maven 插件配置 < ...
- 根据wsdl文件生成WebService客户端代码
有时候在项目中,一个项目可能有好几个公司在做.系统之间难免会出现互相调用接口的现象,这时候有一种办法就是使用webService.本篇文章将介绍如何将对接系统提供的WebService接口,根据对方提 ...
- 关于cxf生成客户端代码中的JAXBElement<String>
1.使用自动生成的java文件中的 ObjectFactory构造入参 关于cxf生成客户端代码中的JAXBElement<String> 在使用cxf或者x-fire进行webse ...
随机推荐
- Problem and Solution Code Snippets
(积累知识,遇到发展,本文仅用于备忘录,不时它需要召回准备) Problem: 依据String的大小来调整Label的frame.在view中又一次更新views的layout并显示. Soluti ...
- •当对自己的技术足够自信的时候,拼的就是RP和面试技巧了(转)
前言 三月真是一个忙碌的季节,刚刚开学就需要准备各种面试和笔试(鄙视).幸运的是,在长达一个月的面试内推季之后,终于同时拿到了阿里和腾讯的offer,还是挺开心的.突而想起久未更新的博客,就冒昧学一学 ...
- tab功能菜单——使用tab之间不同的交换机div
需求:在web实现类型的接口tab标签效应 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fo ...
- Python3.2官方文档-日志和弱引用
8.5 日志 Logging模块提供了一些功能全面和灵活的日志系统.最简单的形式就是把日志信息发送到一个文件或sys.stderr; import logging logging.debug('Deb ...
- 用EnableMenuItem不能使菜单变灰的原因
为何不能Disable菜单项 问:我有一个工具button在WM_COMMAND消息是这样做的: CMenu *pMenu = GetMenu(); pMe ...
- hdu4738(割桥)
找人去炸边,炸完之后分成两个连通块(炸割桥) 每条边上有w个守卫,派去炸桥的人不能比守卫少 所以, 如果原本不连通,那么输出0 如果没有桥,输出-1 如果有桥没有守卫,那么是输出1,而不是0(tric ...
- PowerDesigner 对 Oracle 作 逆向工程
原文 PowerDesigner 对 Oracle 作 逆向工程 目的 PowerDesigner 15对OracleClient 11g进行逆向工程 环境 Win7 64位系统 Oracle 11g ...
- 怎么样excel其产生的条形码(10分钟的时间excel)从而出现了条形码
现在快递行业.京东购物,这样一来,使用条码管理,因此,如何在你的excel其中还生产商品条码管理它?其实很easy,4步骤学会!10分钟搞定. 1.从网址如下.下载字体, 2.双击安装字体. 3,在e ...
- C语言 cgi(2)
1Columbia Universitycs3157 – Advanced ProgrammingSummer 2014, Lab #3, 40 pointsJune 10, 2014This lab ...
- JS获得URL参数
使用JavaScript获得URL在参数值 方法一: function getUrlParam(name) { var reg = new RegExp("(^|&)&qu ...