如何在自定義文件下創建cocos2d-x項目

如何在自定義文件下創建cocos2d-x項目

DionysosLai 2014-5-4

首先,感謝http://www.cnblogs.com/skynet/p/3428369.html這篇文章的作者,下面的文章是基於他的文章,修改的,爲的是更好的讓別人上手。本來是用在公司內部分享,現在將文章分享出來,希望能對其他人有作用。

    再次感謝原作者。

目前使用create_project.py創建Cocos2d-x項目,存在一個問題,就是不能自定義創建項目路徑,項目只能放在cocos2d-x/projects目錄下面。比較合理的解決方案是:比較合理的方案是:

1.       cocos2d-x獨立安裝,這樣對cocos2d-x升級也相對簡單。

2.       新建cocos2d-x項目獨立於cocos2d-x安裝路徑。通過設置搜索或引用路徑,讓項目能夠找到cocos2d-x安裝路徑。

解決方案是通過創建環境變量,讓新建cocos2d-x項目獨立於cocos2d-x引擎目錄:

1.      將新建的項目剪切到我們想要放置的目錄下;

2.      創建環境變量COCOS2DX_HOME,指向cocos2d-x安裝目錄(像我的安裝目錄是:E:\EngilshLogicGame\LogicGame\cocos2d-x-2.2.3,注意:不要在後面加上“;” )

3.      將“change.py”文件放在你的項目proj.win32,運行“change.py”,代碼如下:”python change.py”, 會會自動替換查找替換*.sln, *.vcxproj裏面的東西

最後,說個問題,就是雖然這樣做可以,但是,當使用eclipse時,不能直接使用此工程,還是必須cocos2d-x/projects 裏面的工程;

文件下載:

http://download.csdn.net/detail/dionysos_lai/7308875

居然要積分,就將代碼放置如下:

#-*- encoding:utf-8 -*-   

import sys, os

def checkOption():
    argLen = len(sys.argv)
    targetPath = "./"
    if argLen == 2:
        targetPath = sys.argv[1]
        if not targetPath.endswith("/"):
            targetPath += "/"
    return targetPath
    
def replaceCocos2dxPath(path):
    filelists = os.listdir(path)
    for item in filelists:
        suffix = (os.path.splitext(item))[1]
        print(suffix)
        if suffix == ".sln":
            print('replace "..\..\..\" with %COCOS2DX_HOME% in *.sln')
            #replace "..\..\..\" with %COCOS2DX_HOME% in *.sln 
            content = open(path + item, 'r').read().replace("..\\..\\..\\", "%COCOS2DX_HOME%\\")
            file = open(path + item, 'w')
            file.write(content)
            file.close()
        if suffix == ".vcxproj":
            print('replace "$(ProjectDir)..\..\..\" with $(COCOS2DX_HOME)\ in *.vcxproj')
            #replace "$(ProjectDir)..\..\..\" with $(COCOS2DX_HOME)\ in *.vcxproj
            content = open(path + item, 'r').read().replace("$(ProjectDir)..\\..\\..\\", "$(COCOS2DX_HOME)\\")
            file = open(path + item, 'w')
            file.write(content)
            file.close()

if  __name__ == '__main__':
    targetPath = checkOption()
    replaceCocos2dxPath(targetPath)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章