长期使用项目中自带的HelloWorldScene来创建模板工程,不知大家有木有感到厌烦?
我是个懒人,所以就弄了个新的模板工程。这样最起码可以不用每次都把HelloWorldScene删掉再创建一个Scene了,求不被鄙视...... 另外因为通常都会用cocosBuilder作为界面的编辑工具,我就将ccbi文件也加进模板项目中了
2、内容概述
这个模板项目大致包含有:
1、主Scene变更为GameScene。其中有两个层,分别是GameLayer与HudLayer。
2、HudLayer中包含一个cocosBuilder导出的状态显示层。
3、HudLayer中包含自动更新检测与退出按钮。
有图有真相:
项目运行起来是这样的:
像素设定为1024x768。
工程目录是这样的:
3、原理
4、动手更改
首先复制一份InstallWizardForVS2012.js。
不要运行,以编辑的方式打开这个新的副本。
找到这部分:
- // Wizard Info
- var 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.h
- proj.win32/main.h
- proj.win32/main.cpp
- Classes/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 Info
- var 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 location
- try {
- 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.youkuaiyun.com/fansongy/article/details/9672375