cocos2d-x创建新项目模板
? 1、起因
? ? 長期使用項目中自帶的HelloWorldScene來創建模板工程,不知大家有木有感到厭煩?
? ? 我是個懶人,所以就弄了個新的模板工程。這樣最起碼可以不用每次都把HelloWorldScene刪掉再創建一個Scene了,求不被鄙視...... 另外因為通常都會用cocosBuilder作為界面的編輯工具,我就將ccbi文件也加進模板項目中了。
2、內容概述
? ? 這個模板項目大致包含有:
1、主Scene變更為GameScene。其中有兩個層,分別是GameLayer與HudLayer。
? ? ? ? 2、HudLayer中包含一個cocosBuilder導出的狀態顯示層。
? ? ? ? 3、HudLayer中包含自動更新檢測與退出按鈕。
? ? 有圖有真相:
? ?項目運行起來是這樣的:
??
? ? 像素設定為1024x768。
? ? 工程目錄是這樣的:
? ? ? ??
?3、原理
? ? vs項目模板是在VS2012/VC/vcprojects中。我們當然可以直接在其中做更改。不過有個更好的方式是從通過示例項目添加入手,編寫一個與之對應的新模板項目。 ? ? 找到cocos2d-2.1.2/template/msvc這個文件夾。當初我們添加vs項目時運行的就是InstallWizardForVS2012.js這個腳本。我們只要復制這個過程,定位到一個新的項目中,是不是就可以了呢?說干就干。4、動手更改
? ? 首先復制一份InstallWizardForVS2012.js。
? ? 不要運行,以編輯的方式打開這個新的副本。
? ? 找到這部分:
// Wizard Infovar nNumWizards = 1;var astrWizardName = new Array();astrWizardName[0] = "CCAppWiz.win32";var nCntr;for (nCntr = 0; nCntr < nNumWizards; nCntr++) {var strSourceFolder = FileSys.BuildPath(strScriptPath, astrWizardName[nCntr]); ......
? ? CCAppWiz.win32是項目名,這就是我們要找的了。所以我們還要復制一份CCAppWiz.win32。我重命名為layerWithHud.win32。項目名改了。項目內容自然也要改。把文件夾中的CCAppWiz都改掉,效果如下:
? ??
? ? ?下面我們來編輯文件內容。 首先是.vsdir。
? ? ?這個文件是與VS模板所對應的。我將其更改如下:
layerWithHud.win32.vsz| |LayerWithHud Application |1|Create A Application With Basic Layer and Hud.| |6777|4096|#1154
? ? ? 第一個字段表示所對應的.vsz文件的名字。第二個字段是模板的名字。第四個是描述。改好保存。
? ??
? ? 然后我們打開VS的項目。將自己之前調試好的類,正確的加入到項目中。這個項目是08生成的,我正好也有,就沒轉換項目,用vs2012打開并進行調整效果也是一樣的。
? ? ??
? ? 接下來是Templates/1033/Templates.inf。這個文件描述了要復制到新項目的文件都有些什么:
proj.win32/res/root.ico proj.win32/root.rc proj.win32/resource.hproj.win32/main.h proj.win32/main.cppClasses/AppDelegate.h Classes/AppDelegate.cpp[! if CC_USE_LUA] ../../../../../scripting/lua/cocos2dx_support/LuaCocos2d.cpp ../../../../../scripting/lua/cocos2dx_support/LuaCocos2d.h ../../../../../scripting/lua/cocos2dx_support/CCLuaEngine.cpp ../../../../../scripting/lua/cocos2dx_support/CCLuaEngine.h ../../../../../scripting/lua/cocos2dx_support/Cocos2dxLuaLoader.h ../../../../../scripting/lua/cocos2dx_support/Cocos2dxLuaLoader.cpp ../../../../../scripting/lua/cocos2dx_support/tolua_fix.c ../../../../../scripting/lua/cocos2dx_support/tolua_fix.h [! else] Classes/CCBHud.h Classes/CCBHud.cpp Classes/GameLayer.h Classes/GameLayer.cpp Classes/GameScene.h Classes/GameScene.cpp Classes/HudLayer.h Classes/HudLayer.cpp [! endif][! if CC_USE_LUA] Resources/Default.png Resources/crop.png Resources/farm.jpg Resources/land.png Resources/menu2.png Resources/Icon.png Resources/dog.png Resources/hello.lua Resources/hello2.lua Resources/menu1.png Resources/background.mp3 Resources/effect1.wav [! else] Resources/CloseSelected.png Resources/CloseNormal.png Resources/HelloWorld.png Resources/Texture/Time_New_Roman.fnt Resources/Texture/Time_New_Roman.png Resources/Texture/Time_New_Roman_small.fnt Resources/Texture/Time_New_Roman_small.png Resources/Texture/back.png Resources/HudHorizontal.ccbi CCBProject_Hub.rar [! endif]
? ? 如果定義了Lua,即:向導勾選了Lua,則進入Lua的條件語句。目前與Lua的邏輯無關。我的Class中的文件要復制過去,所以加入到其中。相應的ccbi文件與字體圖片什么的也要一并寫進去。每個文件都寫有些麻煩,有人知道怎么添加整個文件夾,希望能告訴我。最后那個rar是cocosBuilder的項目。我打成一個rar隨項目資源一起復制過去。
? ??
? ? 改了一圈最終可以改動InstallWizardForVS2012.js這個副本文件啦,我們把它重命名為InstallLayerWizardForVS2012.js 找到之前那部分,改為:
// Wizard Infovar nNumWizards = 1;var astrWizardName = new Array();astrWizardName[0] = "layerWithHud.win32";var nCntr;for (nCntr = 0; nCntr < nNumWizards; nCntr++) {var strSourceFolder = FileSys.BuildPath(strScriptPath, astrWizardName[nCntr]);......
? ? 還有需要更改一處:
// Read and write additional CCAppWiz.vsdir, add path to the wizard locationtry {var strDest = FileSys.BuildPath(strDestCCFolder, "LayerWithHud.vsdir");var ForWriting = 2;var fileDest = FileSys.OpenTextFile(strDest, ForWriting, true);......
? ? 這個.vsdir是儲存在項目模板中的文件的名稱,如果不更改,會將之前HelloWorldScene模板替換掉。
5、收尾
? ? 運行剛剛改好的InstallLayerWizardForVS2012.js 彈出App Wizard successfully installed for VS2012!則說明安裝正確了。如果不正確可能是目錄的問題,檢查一下相應的文件。
? ? ?如果一切順利,重啟VS即可看到你的新項目模板了。
本篇博客出自阿修羅道,轉載請注明出處:http://blog.csdn.net/fansongy/article/details/9672375
總結
以上是生活随笔為你收集整理的cocos2d-x创建新项目模板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用Python软件完成通讯录功能
- 下一篇: python 基础代谢率计算_基于pyt