通过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 ...
随机推荐
- NGUI研究之在Unity中使用贝塞尔曲线
鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天由于工作的原因须要将贝塞尔曲线加在project中.那么我迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的随意角度的曲线,这两个点一 ...
- 斯坦福ML公开课笔记14——主成分分析
上一篇笔记中,介绍了因子分析模型,因子分析模型使用d维子空间的隐含变量z来拟合训练数据,所以实际上因子分析模型是一种数据降维的方法,它基于一个概率模型,使用EM算法来预计參数. 本篇主要介绍PCA(P ...
- linux--档案权限与目录配置
下面是最近学习档案权限与目录配置的一些知识点总结***博客园-邦邦酱好*** Linux最优秀的地方之一,就在于他的多人多任务环境.而为了让各个使用者具有较保密的档案数据,因此档案的权限管理就变的很重 ...
- 微信简单Demo
新建一个WxHandler.ashx public class WxHandler : IHttpHandler { public static string Msg; public void Pro ...
- 安装dotnet core
CentOS 7.1下安装dotnet core .NET CORE的官方(http://dotnet.github.io/getting-started/)只提供了Windows, Ubuntu14 ...
- 怎样获取android手机联系人并按字母展示(一)
android提供了本地数据库的查询uri,能够查询出数据: 採用一个AsyncQueryHandler来进行查询, AsyncQueryHandler自己开启了线程来进行数据查询,非常方便 prot ...
- 全部编程皆为Web编程
原文作者:Jeff Atwood 原文链接:http://blog.codinghorror.com/all-programming-is-web-programming Michael Brau ...
- 【剑指offer】设置在最小数目的阵列
转载请注明出处:http://blog.csdn.net/ns_code/article/details/28128551 题目描写叙述: 输入一个正整数数组,把数组里全部数字拼接起来排成一个数.打印 ...
- 故障排查:是什么 导致了服务器端口telnet失败?(转)
telnet命令的主要作用是与目标端口进行TCP连接(即完成TCP三次握手).当服务端启动后,但是telnet其监听的端口,却失败了.或者,当服务端运行了一段时间后,突然其监听的端口telnet不通了 ...
- C++ string类取字符串的左右子串(以特定子串为分界限)
// Example3.cpp : 定义控制台应用程序的入口点. //以特定单词为分界,求取字符串的左右子串 #include "StdAfx.h" #include <st ...