24. cc.Director与资源加载策略
1. cc.Director对象
游戏里面控制管理整个游戏全局对象,包括了场景切换等,为cc.Director对象;
导演对象全局只有一个cc.director,大写的为类, 小写的cc.director为全局的导演对象;
cc.director来获取导演对象实例;
游戏中各种管理对象都可以通过cc.director获取,比如物理引擎管理,Action管理, 碰撞检测管理等;
2. 常用接口
getWinSize: 适配后的逻辑大小;
getWinSizeInPixels: 获取窗口的像素大小;
getScene: 获取当前的逻辑场景,场景对象下面是Canvas;
setDisplayStats: 是否显示左下角FPS信息;
getCollisionManager: 获取碰撞检测管理对象;
getPhysicsManager :获取物理引擎管理对象;
loadScene(scene_name):加载场景,场景的名字,系统会加载对应的场景
preloadScene(scene_name):预加载场景
3. 资源加载策略
h5资源加载的过程:
(1)从服务器上下载来来资源,并把资源加载到内存中,所以你在做h5游戏,你要把你当前游戏中要用到的资源先加载下来,否者的话,你在运行的时候去加载就来不及了(h5卡住);
三种资源加载策略:
1>: h5的小游戏:采用全部提前绑定好所有的资源。编写预加载脚本preload.js,
将要加载的资源手动关联到第一个启动的场景上面;
2>: 添加等待界面,预加载下一个场景,然后再进行切换,提前关联好下一个场景要的资源;
cc.loader.onProgress = function ( completedCount, totalCount, item ){
console.log("completedCount:" + completedCount + ",totalCount:" + totalCount );
};
3> 嫌手动关联麻烦,在场景切换中加入过渡场景,代码来加载场景的资源:
cc.loader.loadResAll("textures", function (err, assets) {
});
代码加载资源会导致setting.js文件过大,一般尽量少在代码里面加载资源;
例子
home_scene.js
// Learn cc.Class:
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/class.html
// - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/class.html
// Learn Attribute:
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
// - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
// - [English] https://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.htmlcc.Class({extends: cc.Component,properties: {// foo: {// // ATTRIBUTES:// default: null, // The default value will be used only when the component attaching// // to a node for the first time// type: cc.SpriteFrame, // optional, default is typeof default// serializable: true, // optional, default is true// },// bar: {// get () {// return this._bar;// },// set (value) {// this._bar = value;// }// },wait: {default: null,type: cc.Node,},progress_lable: {type: cc.Label,default: null,},},// LIFE-CYCLE CALLBACKS:onLoad () {this.wait.active = false;this.progress_lable.string = "0%";},start () {},goto_road: function() {//切换场景时如果直接切换过去,下一个场景会加载资源等待加载的时候会卡住一段时间//我们在这里加上等待界面this.wait.active = true;//预加载cc.director.preloadScene("roadmap_scene", function(completedCount, totalCount, item) {console.log("completedCount:" + completedCount + ",totalCount:" + totalCount);var per = Math.floor(completedCount * 100 / totalCount);this.progress_lable.string = per + "%";}.bind(this), function() {cc.director.loadScene("roadmap_scene");});//end},// update (dt) {},
});
preload.js
// Learn cc.Class:
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/class.html
// - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/class.html
// Learn Attribute:
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
// - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
// - [English] https://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.htmlcc.Class({extends: cc.Component,properties: {// foo: {// // ATTRIBUTES:// default: null, // The default value will be used only when the component attaching// // to a node for the first time// type: cc.SpriteFrame, // optional, default is typeof default// serializable: true, // optional, default is true// },// bar: {// get () {// return this._bar;// },// set (value) {// this._bar = value;// }// },//预加载资源img_array: {default: [],type: cc.SpriteFrame,},atlas_array: { //图集资源default: [],type: cc.SpriteAtlas,},sound_array: {default: [],url: cc.AudioClip,},prefab_array: { //预制体资源default: [],type: cc.Prefab,},},// LIFE-CYCLE CALLBACKS:// onLoad () {},start () {},// update (dt) {},
});
工程截图
24. cc.Director与资源加载策略相关推荐
- 【Cocos2d-X(2.x) 游戏开发系列之三】最新版本cocos2d-2.0-x-2.0.2使用资源加载策略
前段时间cocos2dx更新了最新版本cocos2d2.0x2.0.2,也从这个版本开始对于资源加载与管理都改变了策略. 在之前的加载方式都是通过沿用与cocos2d-iphone一样的加载资源 ...
- 【sping揭秘】6、IOC容器之统一资源加载策略
Spring中的resource 我们先看看类之间的关系 注意我们的application是间接继承了resourceloader的,也就是说我们的application其实就是一个resourcel ...
- Cocos Creator 资源加载流程剖析【二】——Download部分
Download流程的处理由Downloader这个pipe负责(downloader.js),Downloader提供了各种资源的"下载"方式--即如何获取文件内容,有从网络获取 ...
- 06.Spring 资源加载 - ResourceLoader
基本概念 ResourceLoader 接口,在 Spring 中用于加载资源,通过它可以获取一个 Resouce 对象. 内部构造 首先来看它的接口定义: public interface Reso ...
- Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 为了 ...
- 浏览器页面资源加载过程与优化
评价页面性能好坏的核心之一就是页面的加载速度,而页面加载速度的关键就是页面资源的加载.本文将从浏览器浏览器页面资源加载过程展开分析,来引出页面关键请求路径的概念,并给出如何优化该关键请求路径的一些方法 ...
- Cocos Creator2.4.8 资源加载源码阅读
最近用到资源加载的问题:加载的资源进度条倒退问题,现在只是用临时的解决方案 - 加载进度如果出现会倒退的问题还是用原来的数值.抽时间看了下cocos creator 资源加载的源码,整理了一下脑图 一 ...
- JavaScript 页面资源加载:onload,onerror
资源加载:onload,onerror 浏览器允许我们跟踪外部资源的加载 -- 脚本,iframe,图片等. 这里有两个事件: onload -- 成功加载, onerror -- 出现 error. ...
- JavaScript 页面资源加载方法onload,onerror总结
资源加载:onload,onerror 浏览器允许我们跟踪外部资源的加载 -- 脚本,iframe,图片等. 这里有两个事件: onload -- 成功加载, onerror -- 出现 error. ...
- android图片加载过程,教你写Android ImageLoader框架之图片加载与加载策略
在教你写Android ImageLoader框架之初始配置与请求调度中,我们已经讲述了ImageLoader的请求配置与调度相关的设计与实现.今天我们就来深入了解图片的具体加载过程以及加载的策略(包 ...
最新文章
- 《实用》secureCRT远程连接linux虚拟机-突然连接不上-解决办法
- postgresql 客户端_Postgresql体系结构
- java 找出list中相同数据_Java获取List中相同的数据
- jquery.tmplate使用心得
- 二级高级应用计算机考试环境,1.2 上机考试环境免费阅读_全国计算机等级考试无纸化真考题库二级MS Office高级应用免费全文_百度阅读...
- 被哥哥巨额索赔56亿?贾跃亭回应:40多亿为联合担保
- Restify Api 开发经验
- Mac OS X 11中的/usr/bin 的“Operation not permitted”
- 蓝桥杯 基础练习 Sine之舞
- Netty的并发编程实践5:不要依赖线程优先级
- 两种方式从Mac计算机上的启动板菜单中删除应用程序?
- java怎么做摇杆_DJI虚拟摇杆控制未正确应用
- 服务器2008系统提权工具,提权教程:winserver2008R2溢出提权
- oracle 10g varchar2与varchar有什么区别
- HTML 前后端分离,再谈前后端分离开发和部署
- 走格子(bfs+dji)
- PHP 编写“九九乘法表”
- 小米6自动重启android,小米6充电重启怎么办?小米6充电自动重启解决方法介绍...
- 基于PHP的学生宿舍管理系统
- R语言绘图——实用篇 ggplot2绘图