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 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.csdn.net/fansongy/article/details/9672375

cocos2d-x创建新项目模板的更多相关文章

  1. What?VS2019创建新项目居然没有.NET Core3.0的模板?Bug?

    今天是个值得欢喜的日子,因为VS2019在今天正式发布了.作为微软粉,我已经用了一段时间的VS2019 RC版本了.但是,今天有很多小伙伴在我的<ASP.NET Core 3.0 上的gRPC服 ...

  2. Android Studio开发第二篇创建新项目

    创建新项目很简单,File-New-New Project,这个没什么好说的跟Eclipse都差不都. 第二步SDK选择,有手机平板还有Wear,TV,汽车Auto,谷歌眼镜等几个种平台,这里就先选择 ...

  3. [Xcode 实际操作]一、博主领进门-(1)iOS项目的创建和项目模板的介绍

    目录:[Swift]Xcode实际操作 本文将演示iOS项目的创建和项目模板的介绍. [Create a new Xcode project]创建一个新的项目. 在弹出的模板窗口中,显示了所有的项目模 ...

  4. Django 创建新项目后要完成的几个步骤

    首先,在过一遍创建新项目的步骤: -创建一个新项目 -建了数据库后要确定自己是用 mysql数据库  还是用 sqlite3数据库 -如果是mysql数据库,那一堆配置 -如果是sqlite3数据库, ...

  5. Worker Services的新项目模板

    .NET Core3.0创建Worker Services2019-10-24 09:05  成天  阅读(1438)  评论(20)  编辑收藏 .NET CORE 3.0新增了Worker Ser ...

  6. 使用Maven Archetype创建Java项目模板

    1.over view 简而言之,Archetype是一个Maven项目模板工具包.原型被定义为一种原始的模式或模型,所有其他同类的东西都是从中产生的.当我们试图提供一个提供生成Maven项目的一致方 ...

  7. VS自定义项目模板:[2]创建VSIX项目模板扩展

    VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师 ...

  8. 用Kotlin开发Android应用(II):创建新项目

    这是关于Kotlin的第二篇.各位高手发现问题,请继续“拍砖”. 原文标题:Kotlin for Android(II): Create a new project 原文链接:http://anton ...

  9. cocos2d-x3.2创建新项目失败的一种可能性(cygwin自带的python2.6被抢先执行)

    之前一直使用cocos2d-x2.2写游戏,写了几个游戏后,想尝试下3.x版本的新功能,就下载了cocos2d-x3.2版本. 参照官方文档的说法,cocos2d-x3.x版本需要python2.7环 ...

随机推荐

  1. 基于MINA框架快速开发网络应用程序

    1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架.通过使用M ...

  2. HBase HFile

    HFile index HFile index, which is proportional to the total number of Data Blocks. The total amount ...

  3. HDOJ(HDU) 2060 Snooker(英语很重要。。。)

    Problem Description background: Philip likes to play the QQ game of Snooker when he wants a relax, t ...

  4. EditText输入长度动态控制,最大长度为16位,小数点后面最大为2位,输入整数只能为13位

    首先在xml 中把inputType设置为numberDecimal (包含小数点)然后在把maxLeng设置为16 package com.example.numbertest; import an ...

  5. WAD独立安装版USB Loader的下载和安装

    背景知识 我使用Wad Manager来安装WAD版软件,所以需要先在Wii上面把Wad Manager准备好.详情可以参考我写的另外一篇文章<Wad Manager的下载和运行>(链接: ...

  6. 谷歌 google

    google Google是搜索引擎名,也是一家美国上市公司名称.Google公司于1998年9月7日以私有股份公司的形式创立,以设计并管理一个互联网的搜索引擎.Google公司的总部称作“Googl ...

  7. Promise in AngularJS

    What's promise Angular’s event system provides a lot of power to our Angular apps. One of the most p ...

  8. xshell中启动linux图形界面

    使用root用户执行xhost + IP为客户端机器IP,使用远程登录用户执行 DISPLAY=IP:0.0;export DISPLAY; 使用远程登录的用户执行: xhost +

  9. 使用FTPClient进行文件服务器内文件的上传和下载

    我用的FTPClient是由Apache组织的commons-net.jar包中的API,这个包用起来非常的方便,很容易上手.我在项目开发的过程中主要用到了文件的上传和下载功能,下面将我开发的代码贴出 ...

  10. 标准简单SP模板(sql server)

    CREATE Procedure eSP_ChangeStart --eSP_ChangeStart 64 @ID int, Output As Declare ), @ID_Max int Begi ...