cocos2d-x创建新项目模板

  760人阅读  评论(1)  收藏  举报
 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。

    不要运行,以编辑的方式打开这个新的副本。

    找到这部分:

[javascript]  view plain copy print ?
  1. // Wizard Info  
  2.    var nNumWizards = 1;  
  3.   
  4.    var astrWizardName = new Array();  
  5.    astrWizardName[0] = "CCAppWiz.win32";  
  6.   
  7.    var nCntr;  
  8.    for (nCntr = 0; nCntr < nNumWizards; nCntr++) {  
  9.        var strSourceFolder = FileSys.BuildPath(strScriptPath, astrWizardName[nCntr]);  
  10. .....  

     CCAppWiz.win32是项目名,这就是我们要找的了。所以我们还要复制一份CCAppWiz.win32。我重命名为layerWithHud.win32。项目名改了。项目内容自然也要改。把文件夹中的CCAppWiz都改掉,效果如下:

    

     下面我们来编辑文件内容。 首先是.vsdir。

     这个文件是与VS模板所对应的。我将其更改如下:

[plain]  view plain copy print ?
  1. 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。这个文件描述了要复制到新项目的文件都有些什么:

[plain]  view plain copy print ?
  1. proj.win32/res/root.ico  
  2. proj.win32/root.rc  
  3. proj.win32/resource.h  
  4.   
  5. proj.win32/main.h  
  6. proj.win32/main.cpp  
  7.   
  8. Classes/AppDelegate.h  
  9. Classes/AppDelegate.cpp  
  10.   
  11. [! if CC_USE_LUA]  
  12. ../../../../../scripting/lua/cocos2dx_support/LuaCocos2d.cpp  
  13. ../../../../../scripting/lua/cocos2dx_support/LuaCocos2d.h  
  14. ../../../../../scripting/lua/cocos2dx_support/CCLuaEngine.cpp  
  15. ../../../../../scripting/lua/cocos2dx_support/CCLuaEngine.h  
  16. ../../../../../scripting/lua/cocos2dx_support/Cocos2dxLuaLoader.h  
  17. ../../../../../scripting/lua/cocos2dx_support/Cocos2dxLuaLoader.cpp  
  18. ../../../../../scripting/lua/cocos2dx_support/tolua_fix.c  
  19. ../../../../../scripting/lua/cocos2dx_support/tolua_fix.h  
  20. [! else]  
  21. Classes/CCBHud.h  
  22. Classes/CCBHud.cpp  
  23. Classes/GameLayer.h  
  24. Classes/GameLayer.cpp  
  25. Classes/GameScene.h  
  26. Classes/GameScene.cpp  
  27. Classes/HudLayer.h  
  28. Classes/HudLayer.cpp  
  29. [! endif]  
  30.   
  31. [! if CC_USE_LUA]  
  32. Resources/Default.png  
  33. Resources/crop.png  
  34. Resources/farm.jpg  
  35. Resources/land.png  
  36. Resources/menu2.png  
  37. Resources/Icon.png  
  38. Resources/dog.png  
  39. Resources/hello.lua  
  40. Resources/hello2.lua  
  41. Resources/menu1.png  
  42. Resources/background.mp3  
  43. Resources/effect1.wav  
  44. [! else]  
  45. Resources/CloseSelected.png  
  46. Resources/CloseNormal.png  
  47. Resources/HelloWorld.png  
  48. Resources/Texture/Time_New_Roman.fnt  
  49. Resources/Texture/Time_New_Roman.png  
  50. Resources/Texture/Time_New_Roman_small.fnt  
  51. Resources/Texture/Time_New_Roman_small.png  
  52. Resources/Texture/back.png  
  53. Resources/HudHorizontal.ccbi  
  54. CCBProject_Hub.rar  
  55. [! endif]  

     如果定义了Lua,即:向导勾选了Lua,则进入Lua的条件语句。目前与Lua的逻辑无关。我的Class中的文件要复制过去,所以加入到其中。相应的ccbi文件与字体图片什么的也要一并写进去。每个文件都写有些麻烦,有人知道怎么添加整个文件夹,希望能告诉我。最后那个rar是cocosBuilder的项目。我打成一个rar随项目资源一起复制过去。

    

    改了一圈最终可以改动InstallWizardForVS2012.js这个副本文件啦,我们把它重命名为InstallLayerWizardForVS2012.js 找到之前那部分,改为:

[javascript]  view plain copy print ?
  1. // Wizard Info  
  2.    var nNumWizards = 1;  
  3.   
  4.    var astrWizardName = new Array();  
  5.    astrWizardName[0] = "layerWithHud.win32";  
  6.   
  7.    var nCntr;  
  8.    for (nCntr = 0; nCntr < nNumWizards; nCntr++) {  
  9.        var strSourceFolder = FileSys.BuildPath(strScriptPath, astrWizardName[nCntr]);  
  10.    ......  

     还有需要更改一处:

[javascript]  view plain copy print ?
  1. // Read and write additional CCAppWiz.vsdir, add path to the wizard location  
  2. try {  
  3.     var strDest = FileSys.BuildPath(strDestCCFolder, "LayerWithHud.vsdir");  
  4.   
  5.     var ForWriting = 2;  
  6.   
  7.     var fileDest = FileSys.OpenTextFile(strDest, ForWriting, true);  
  8. ......  

     这个.vsdir是储存在项目模板中的文件的名称,如果不更改,会将之前HelloWorldScene模板替换掉。

5、收尾

    运行刚刚改好的InstallLayerWizardForVS2012.js 弹出App Wizard successfully installed for VS2012!则说明安装正确了。如果不正确可能是目录的问题,检查一下相应的文件。

     如果一切顺利,重启VS即可看到你的新项目模板了。



本篇博客出自阿修罗道,转载请注明出处:http://blog.csdn.net/fansongy/article/details/9672375


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值