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之中
这样在场景加载的时候就可以加载图片资源,缺点就是要本人慢慢地绑定,当然如果是精灵帧资源可以通过图集直接绑定,不需要拖这么多。这里只是假设有这么多的资源。当场景切换的时候,由于另一个场景需要加载的资源是还没加载到的,所以会造成卡顿的现象,因此一般的游戏都会制作一个读取的UI界面来弥补卡顿的时间。
制作一个等待画面编写脚本
添加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