cocos2d-x 2.2 利用python脚本在目录Classes内创建class

VS2012下,新建的类,生成的位置都是在 proj.win32 目录中的,如果考虑到以后再安卓及IOS上的编译,是不是应该把他们拷贝到 Classes 目录中去?

摸索了一下,发现VS2012直接创建不能直接指定文件夹,所以还是写个python脚本来干这个破事吧。谁让cocos2d-x里很多其他工具也用python脚本呢,那咱也来用一下。


需要2个文件,一个批处理文件【CreateClassInProject.bat】,一个py的脚本文件【CreateClassInProject.py】。


CreateClassInProject.bat
内容如下:
@echo off  
echo CreateClassInProject:  
rem set /p projectName=Please Input Project Name:   
set /p className=Please Input Class Name:   
  
echo Creating...  

rem E:\cocos2d-x-3.0\CreateClassInProject.py -p %projectName% -n %className%    
CreateClassInProject.py -p HelloCocoStudio -n %className%  
  
echo Create successfully,Please add it in Classes.  
  
pause


CreateClassInProject.py
内容如下:

import sys,os  
  
def createFileInClass(projectName,newClassName):  
    print("------------- 001 --------------");  
    # projectDir = "projects\\"+projectName+"\\Classes";
    projectDir = "Classes";  
    os.chdir(projectDir);  
    headName=newClassName+".h";  
    sourceName=newClassName+".cpp"  
      
    headFile=open(headName,"a");  
    tempFileName = "_"+newClassName.upper()+"_H_";  
      
    headFile.write("#ifndef "+ tempFileName +"\n#define  "+tempFileName+"\n\n")  
    headFile.write("#include \"cocos2d.h\""+"\n\n");  
    headFile.write("using namespace cocos2d;\n\n");  
    headFile.write("class "+newClassName+"\n"+"{"+"\n"+"};"+"\n\n"+"#endif");  
    headFile.close();  
      
    sourceFile = open(sourceName,"a");  
    sourceFile.write("#include "+"\""+headName+"\"");  
    sourceFile.close()    

      
from optparse import OptionParser  

print("------------- 002 --------------");  
parser = OptionParser()  
parser.add_option("-p", "--dir", dest="projectName",help="the project name",)  
parser.add_option("-n", "--new", dest="newClassName", help="new class")  
(options, args) = parser.parse_args()  


print("-------------john--------------");  
createFileInClass(options.projectName,options.newClassName)


后面完善了再修改
posted @ 2015-08-24 15:57  Anzhongliu  阅读(259)  评论(0编辑  收藏  举报