创建工程
有一个简单的创建工程的方法,就是直接复制一份项目目录下的template,放在相同的目录下,这个template就是工程的模板。右击template->Copy->右击项目根目录(Cocos2d-html5-v.2.2.2)->paste->再弹出框内填入自己的项目名。
目录结构简单叙述:
1.res: 资源存放目录
2.src: js脚本存放目录(我们自己项目的源码目录)
3.build.xml: 对引擎进行编译成js脚本形式所用的文件
4.cocos2d.js: 对引擎进行参数设置的配置文件
5. index.html::运行着程序的网页
6.main.js:主程序入口
之前,我们已经创建好了一个工程。在进入我的的添加场景之前,还有一个重要的事情要做,当然是是先找到程序的入口。所以我们打开main.js。
它定义了一个名为cocos2dApp的变量,调用了cc.Application.extend()方法,方法名extend表明这个cocos2dApp继承了cc.Application。这个类用的不多,关键是它的applicationDidFinishLaunching()方法,可以从它的方法名上看出来,这个方法是程序加载完成的时候调用的,我们可以基本的认为这是程序的入口。我们代码的编写就从这个方法开始!
我们注意到,这个cc.Application类还有另外一个方法ctor(),这个方法名是不是和“constructor”有点像呢?没错!这就是构造函数。我们看到这个构造函数传入了一个scene参数,是一个“场景”(场景的概念后面我们马上就会介绍)。我们看到这个文件配置了DEBUG模式,这个模式是从this.config]中取到的,那这个this.config在哪里呢?就是我们介绍项目目录时提到过的“cocos2d.js”,这是一个配置文件。
我们还是直接看加了注释的代码吧。
var cocos2dApp = cc.Application.extend({
config:document'ccConfig'],
ctor:function (scene) {
this._super();
this.startScene = scene;
cc.COCOS2D_DEBUG = this.config'COCOS2D_DEBUG'];//配置Debug模式
cc.initDebugSetting();//初始化Debug设置
cc.setup(this.config'tag']);//装载页面上的Canvas,从cocos2d.js中可以发现,tag的值与index.html中的Canvas的id是相同的
cc.AppController.shareAppController().didFinishLaunchingWithOptions();//实际上会调用到applicationDidFinishLaunching()
},
applicationDidFinishLaunching:function () {
// initializes director (获得导演)
var director = cc.Director.getInstance();
// 自适应
cc.EGLView.getInstance()._adjustSizeToBrowser();
//----------------处理多分辨率----------------
var screenSize = cc.EGLView.getInstance().getFrameSize();
var resourceSize = cc.size(480, 800);
var designSize = cc.size(480, 800);
var searchPaths = ];
var resDirOrders = ];
searchPaths.push("res");
cc.FileUtils.getInstance().setSearchPaths(searchPaths);
var platform = cc.Application.getInstance().getTargetPlatform();
if (platform == cc.TARGET_PLATFORM.MOBILE_BROWSER) {
resDirOrders.push("HD");
}
else if (platform == cc.TARGET_PLATFORM.PC_BROWSER) {
if (screenSize.height >= 800) {
resDirOrders.push("HD");
}
else {
resourceSize = cc.size(320, 480);
designSize = cc.size(320, 480);
resDirOrders.push("Normal");
}
}
cc.FileUtils.getInstance().setSearchResolutionsOrder(resDirOrders);
director.setContentScaleFactor(resourceSize.width / designSize.width);
cc.EGLView.getInstance().setDesignResolutionSize(designSize.width, designSize.height, cc.RESOLUTION_POLICY.SHOW_ALL);
cc.EGLView.getInstance().resizeWithBrowserSize(true);
//------------------------------------------
// turn on display FPS (显示帧速信息)
director.setDisplayStats(this.config'showFPS']);
// set FPS. the default value is 1.0/60 if you don't call this
// (设置帧速,默认为每(1.0/60)显示一帧,即每秒60帧)
director.setAnimationInterval(1.0 / this.config'frameRate']);
//load resources(预加载”src/resource.js”文件中定义的资源,后面会提到,加载完成进入游戏界面)
cc.LoaderScene.preload(g_resources, function () {
director.replaceScene(new this.startScene());
}, this);
return true;
}
});
var myApp = new cocos2dApp(MyScene);
```
上一篇:http://www.cocoachina.com/bbs/read.php?tid=187987
下一篇:http://www.cocoachina.com/bbs/read.php?tid=188215
