cocos creator学习17——cc.Director&资源加载

cc.Director对象

cc.director各模块管理对象实例,全局只存在一个。比如物理引擎管理,Action管理, 碰撞检测管理等都可以从cc.director获得。

cc.director常用API

方法 功能说明
getWinSize 获取视图的大小,以点为单位,简单来说就是逻辑大小
getWinSizeInPixels 获取视图大小,以像素为单位(这里的像素指的是资源分辨率。 如果要获取屏幕物理分辨率,需要用 cc.view.getFrameSize())
getScene 获取当前的逻辑场景,场景对象下面是Canvas
setDisplayStats 是否显示左下角FPS信息
getCollisionManager 获取碰撞检测管理对象,返回与该cc.director关联的cc.CollisionManager
getPhysicsManager 获取物理引擎管理对象,返回与该cc.director关联的cc.PhysicsManager
loadScene(scene_name) 加载场景,场景的名字,系统会加载对应的场景
preloadScene(scene_name) 预加载场景,但你使用后仍然需要使用cc.director.loadScene()启动场景

资源加载

资源加载的过程:
1.准备一个resources文件夹,然后通过代码将其加载,具体在我的cocos creator学习9中详细说明
2.另一种就是通过脚本,把需要加载的资源绑定到creator之中
2
这样在场景加载的时候就可以加载图片资源,缺点就是要本人慢慢地绑定,当然如果是精灵帧资源可以通过图集直接绑定,不需要拖这么多。这里只是假设有这么多的资源。当场景切换的时候,由于另一个场景需要加载的资源是还没加载到的,所以会造成卡顿的现象,因此一般的游戏都会制作一个读取的UI界面来弥补卡顿的时间。

制作一个等待画面编写脚本

添加wait节点
添加wait节点
添加mask单色节点,设置透明度为127
添加Label,string设置为0%
编写代码

cc.Class({
    extends: cc.Component,
    properties: {
        Label:{
            type:cc.Label,
            default:null,
        },
        wait:{
            type:cc.Node,
            default:null,
        }
    },
    onLoad () {
        this.wait.active=false;
        this.Label.string = "0%";
        cc.log(this.Label.string);
    },
    begin_load:function(){
        this.wait.active=true;
        //onProgress可以查看到加载进度
        cc.loader.onProgress = function ( completedCount, totalCount,  item ){
            console.log("completedCount:" + completedCount + ",totalCount:" + totalCount );
            var per = Math.floor(completedCount*100/totalCount);
            this.Label.string = per + "%";
        }.bind(this);
        //使用preloadScene()预加载场景
        cc.director.preloadScene('game',function(){
            cc.loader.onProgress= null;
            cc.director.loadScene('game');
        });
    }
});

加载效果
效果
查看加载情况onProgress
F12

猜你喜欢

转载自blog.csdn.net/agsgh/article/details/80309320
今日推荐