通过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 ...
随机推荐
- 【翻译】我钟爱的Visual Studio前端开发工具/扩展
原文:[翻译]我钟爱的Visual Studio前端开发工具/扩展 怎么样让Visual Studio更好地编写HTML5, CSS3, JavaScript, jQuery,换句话说就是如何更好地做 ...
- zoj3201(树形dp)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3201 题意:给一棵树, n结点<=1000, 和K < ...
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第二步---编辑器(1)--触摸加入点
/* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦,他说:随便写,第一别全然照搬代码:第二能够说 ...
- HttpApplication处理对象与HttpModule处理模块
HttpApplication处理对象与HttpModule处理模块 (第三篇) 一.HttpApplication对象简述 在HttpRuntime创建了HttpContext对象之后,HttpRu ...
- 去掉windows文件末尾的^M: %s/\r//g
去掉windows文件末尾的^M: %s/\r//g
- Android 照相功能
使用内置的Camera 应用程序捕获图像 探索Android 所提供的内置功能,内置的图像捕获与存储功能为Android 上全部媒体功能提供了一个非常好的切入点,为我们在以后的章 ...
- hash表、hash算法
概念: 散列表(Hash table.也叫哈希表),是依据关键码值(Key value)而直接进行訪问的数据结构. 也就是说,它通过把关键码值映射到表中一个位置来訪问记录,以加快查找的速度.这个映射函 ...
- iframe属性參数
iframe属性參数 当点击一个子页面的链接时, 怎样将还有一个子页面嵌入到当前iframe中 仅仅要给这个iframe命名就能够了. <iframe width=420 height=330 ...
- NYOJ710 外星人的供给站 【贪心】
外星人的供给站 时间限制:1000 ms | 内存限制:65535 KB 难度: 描写叙述 外星人指的是地球以外的智慧生命.外星人长的是不是与地球上的人一样并不重要,但起码应该符合我们眼下对生命基 ...
- 轻松管理您的网络password
在互联网在现在这个时代,,我们注册了很多帐户.支付宝账号password,各种宝账户password.微信,QQ,电话password,购买各种网站,金融password,它是不是让孩子们的鞋子瞬间淡 ...