cocos2d-x create_project.py python3版本

cocos2d-x create_project.py python3版本,第1张

概述之前cocos2d-x都是 python2.7版本,固改成python3.x版本 ,仅仅是个人爱好修改。 #!/usr/bin/python#coding=utf-8# create_project_v3.py# Create cross-platform cocos2d-x project# Copyright (c) 2012 cocos2d-x.org# Author: WangZ

之前cocos2d-x都是 python2.7版本,固改成python3.x版本 ,仅仅是个人爱好修改。

#!/usr/bin/python#Coding=utf-8# create_project_v3.py# Create cross-platform cocos2d-x project# copyright (c) 2012 cocos2d-x.org# Author: WangZhe# define global variablescontext = {"language"          : "undefined","src_project_name"  : "undefined","src_package_name"  : "undefined","dst_project_name"  : "undeifned","dst_package_name"  : "undefined","src_project_path"  : "undefined","dst_project_path"  : "undefined","script_dir"        : "undefined",}platforms_List = []# beginimport sysimport os,os.pathimport Jsonimport shutildef dumpusage():    print ("Usage: create_project.py -project PROJECT_name -package PACKAGE_name -language PROGRAMING_LANGUAGE")    print ("Options:")    print ("  -project   PROJECT_name          Project name,for example: MyGame")    print ("  -package   PACKAGE_name          Package name,for example: com.MyCompany.MyAwesomeGame")    print ("  -language  PROGRAMING_LANGUAGE   Major programing lanauge you want to used,should be [cpp | lua | JavaScript]")    print ("")    print ("Sample 1: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame")    print ("Sample 2: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language JavaScript")    print ("")def checkParams(context):    # generate our internal params    context["script_dir"] = os.getcwd() + "/"    global platforms_List        # invalID invoke,tell users how to input params    if len(sys.argv) < 7:        dumpusage()        sys.exit()        # find our params    for i in range(1,len(sys.argv)):        if "-project" == sys.argv[i]:            # read the next param as project_name            context["dst_project_name"] = sys.argv[i+1]            context["dst_project_path"] = os.getcwd() + "/../../projects/" + context["dst_project_name"]        elif "-package" == sys.argv[i]:            # read the next param as g_Packagename            context["dst_package_name"] = sys.argv[i+1]        elif "-language" == sys.argv[i]:            # choose a scripting language            context["language"] = sys.argv[i+1]        # pinrt error log our required paramters are not ready    raise_error = False    if context["dst_project_name"] == "undefined":        print ("InvalID -project parameter")        raise_error = True    if context["dst_package_name"] == "undefined":        print ("InvalID -package parameter")        raise_error = True    if context["language"] == "undefined":        print ("InvalID -language parameter")        raise_error = True    if raise_error != False:        sys.exit()                                     # fill in src_project_name and src_package_name according to "language"    if ("cpp" == context["language"]):        context["src_project_name"] = "HelloCpp"        context["src_package_name"] = "org.cocos2dx.hellocpp"        context["src_project_path"] = os.getcwd() + "/../../template/multi-platform-cpp"        platforms_List = ["ios","androID","win32","winrt","wp8","mac","blackBerry","linux","marmalade","tiZen","wp8-xaml"]    elif ("lua" == context["language"]):        context["src_project_name"] = "Hellolua"        context["src_package_name"] = "org.cocos2dx.hellolua"        context["src_project_path"] = os.getcwd() + "/../../template/multi-platform-lua"        platforms_List = ["ios","marmalade"]    elif ("JavaScript" == context["language"]):        context["src_project_name"] = "HelloJavaScript"        context["src_package_name"] = "org.cocos2dx.helloJavaScript"        context["src_project_path"] = os.getcwd() + "/../../template/multi-platform-Js"        platforms_List = ["ios","win32"]# end of checkParams(context) functiondef replaceString(filepath,src_string,dst_string):    content = ""    f1 = open(filepath,"rb")    for line in f1:        temp_content = line.decode('utf-8')        if src_string in temp_content:            content += temp_content.replace(src_string,dst_string)        else:            content += temp_content    f1.close()    f2 = open(filepath,"wb")    f2.write(content.encode(enCoding='utf_8',errors='strict'))    f2.close()# end of replaceStringdef replaceLastnameInPath(raw_path):    cnt = raw_path.count("PROJECT_name")    if (cnt > 0):        raw_path = raw_path.replace("PROJECT_name",context["src_project_name"],cnt - 1)        dst = raw_path.replace("PROJECT_name",context["dst_project_name"])        return dst    return ""# end of replaceLastnameInPathdef processplatformProjects(platform):    # determine proj_path    proj_path = context["dst_project_path"] + "/proj.%s/" % platform    java_package_path = ""    # read josn config file or the current platform    f = open("%s.Json" % platform)    data = Json.load(f)    # rename package path,like "org.cocos2dx.hello" to "com.company.game". This is a special process for androID    if (platform == "androID"):        src_pkg = context["src_package_name"].split('.')        dst_pkg = context["dst_package_name"].split('.')        os.rename(proj_path + "src/" + src_pkg[0],proj_path + "src/" + dst_pkg[0])        os.rename(proj_path + "src/" + dst_pkg[0] + "/" + src_pkg[1],proj_path + "src/" + dst_pkg[0] + "/" + dst_pkg[1])        os.rename(proj_path + "src/" + dst_pkg[0] + "/" + dst_pkg[1] + "/" + src_pkg[2],proj_path + "src/" + dst_pkg[0] + "/" + dst_pkg[1] + "/" + dst_pkg[2])        java_package_path = dst_pkg[0] + "/" + dst_pkg[1] + "/" + dst_pkg[2]    # rename files and folders    for i in range(0,len(data["rename"])):        tmp = data["rename"][i].replace("PACKAGE_PATH",java_package_path)        src = tmp.replace("PROJECT_name",context["src_project_name"])        if (platform == "wp8-xaml"):            dst = replaceLastnameInPath(tmp)        else:            dst = tmp.replace("PROJECT_name",context["dst_project_name"])        if (os.path.exists(proj_path + src) == True):            os.rename(proj_path + src,proj_path + dst)    # remove useless files and folders    for i in range(0,len(data["remove"])):        dst = data["remove"][i].replace("PROJECT_name",context["dst_project_name"])        if (os.path.exists(proj_path + dst) == True):            shutil.rmtree(proj_path + dst)        # rename package_name. This should be replaced at first. Don't change this sequence    for i in range(0,len(data["replace_package_name"])):        tmp = data["replace_package_name"][i].replace("PACKAGE_PATH",java_package_path)        dst = tmp.replace("PROJECT_name",context["dst_project_name"])        if (os.path.exists(proj_path + dst) == True):            replaceString(proj_path + dst,context["src_package_name"],context["dst_package_name"])        # rename project_name    for i in range(0,len(data["replace_project_name"])):        tmp = data["replace_project_name"][i].replace("PACKAGE_PATH",context["dst_project_name"])                      # done!    print ("proj.%s\t\t: Done!" % platform)    # end of processplatformProjects# -------------- main --------------# dump argvs# print sys.argv# prepare valID "context" dictionarycheckParams(context)# import pprint# pprint.pprint(context)# copy "lauguage"(cpp/lua/JavaScript) platform.proj into cocos2d-x/projects/<project_name>/folderif (os.path.exists(context["dst_project_path"]) == True):    print ("Error:" + context["dst_project_path"] + " folder is already existing")    print ("Please remove the old project or choose a new PROJECT_name in -project parameter")    sys.exit()else:    shutil.copytree(context["src_project_path"],context["dst_project_path"],True)# call process_proj from each platform's script folder          for platform in platforms_List:    processplatformProjects(platform)#    exec "import %s.handle_project_files" % (platform)#    exec "%s.handle_project_files.handle_project_files(context)" % (platform)print ("New project has been created in this path: " + context["dst_project_path"].replace("/tools/project-creator/../..",""))print ("Have Fun!")
总结

以上是内存溢出为你收集整理的cocos2d-x create_project.py python3版本全部内容,希望文章能够帮你解决cocos2d-x create_project.py python3版本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1003995.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存