• 通过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类型。我这里好像有些问题,大家使用当心。

    代码下载地址


          

  • 相关阅读:
    java学习之成员内部类
    上海 炉石面试题及解析
    利用RALL机制来事项String类的赋值操作
    关于信号打断正在读取终端的read与select来监视0文件描述符的问题
    ubuntu16.04开机花屏蓝屏解决方案
    gcc 中__thread 关键字的示例代码
    成长、责任和公司的关系
    团队贡献分
    团队如何做决定
    分析app的NABCD
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5092981.html
Copyright © 2020-2023  润新知