[入门教程]使用Cocos2d-html5游戏引擎编写一个简单的游戏 第三回合:创建工程

创建工程

  有一个简单的创建工程的方法,就是直接复制一份项目目录下的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

想问一下 为什么单独拿出工程和cocos2d文件放在一个目录下 index.html 运行是黑屏

我猜测你是不是双击.html打开的,应该把它放在一个web容器里面啊,不然可能会遇到跨域问题,建议你看看控制台,应该会有报错信息。

写的太模糊了!

mark 一下~~回去慢慢看·