首页 > 代码库 > cocos2d-js v3新特性

cocos2d-js v3新特性

1、游戏对象

      使用cc.game单例代替了原有的cc.Application以及cc.AppControl

2、属性风格API

     旧的API                                  新的API

     node.setPosition(x,y);             node.x = x;

                                                  node.y = y;

     node.setRotation(r);                node.rotation = r;

3、屏幕适配策略(以640*960的分辨率为例)

    var mode = cc.ResolutionPolicy.SHOW_ALL;//显示全部,有黑边
    if(cc.winSize.width/cc.winSize.height > 640/960){
        mode = cc.ResolutionPolicy.FIXED_WIDTH;//当屏幕宽高比大于分辨率时,以宽截屏
    }else if(cc.winSize.width/cc.winSize.height < 640/960){
        mode = cc.ResolutionPolicy.FIXED_HEIGHT;//当屏幕宽高比小于分辨率时,以高截屏
    }
    cc.view.setDesignResolutionSize(640, 960, mode);

4、图层缓存

    当需要bake的节点元素加入到一个cc.Layer或其子类(cc.LayerColor,cc.LayerGradient)对象中,

    然后调用该对象的bake函数就可以了。示例代码:

    var bakeLayer = cc.Layer.create();

    this.addChild(bakeLayer);

    for(var i= 0;i<10;i++){

        var sprite1 = cc.Sprite.create(s_pathGrossini);

        sprite1.setPosition(90 + i * 80 , size.height / 2 - 50);

        bakeLayer.addChild(sprite1);

    } 

    bakeLayer.bake();

    更多信息,可查看测试(js-test)的Bake Layer  test。

    ps:

    1、对于子节点经常会变得层,启用bake功能,会给游戏带来额外的开销。

    2、该功能仅在Canvas渲染模式下有效,在JSB和WebGL渲染模式不会产生效果。

5、JSB资源热更新管理器

    资源管理器Assets Mannager(仅支持JSB),

    多线程并行下载支持(主要用于APP中活动的添加)

    可以参考js-test 中的Extensions/AssetsManagerTest 测试例。

 

cocos2d-js v3新特性