Cocos2d-js cc.director介绍
环境设定
首先,在进入游戏之前,导演对象会设置游戏的运行环境:
设置显示游戏的视图,包含视图的投射,像素格式,等等。
设置游戏运行帧率。
为当前导演对象初始化计时器,动作管理器和事件管理器。
为当前导演对象初始化贴图缓存和渲染器。
导演对象的其他设置
执行主循环
主循环中每一次循环绘制一幅画面到屏幕上。下面是每一帧绘制的详细过程:
计算从上一帧开始到现在的时间,这将会被用于提供调试信息。
让导演对象中的计时器执行被计划的任务。
通过事件管理器通知cc.Director.EVENT_AFTER_UPDATE事件。
清空游戏屏幕。
如果需要进入下一个场景则进行场景切换。
遍历当前场景中的节点并更新节点的空间转换矩阵以及其他必要信息,然后发送绘制指令给渲染器。
通过事件管理器通知cc.Director.EVENT_AFTER_VISIT事件。
渲染器按顺序执行所有渲染指令来最终绘制整个场景到屏幕上。
通过事件管理器通知cc.Director.EVENT_AFTER_DRAW事件。
增加全局总帧数。
除此之外,cc.director同样提供一些函数来控制主循环:
暂停主循环:cc.director.pause()
恢复主循环:cc.director.resume()
场景管理
通常来说,一个游戏会包含用于不同用例的几个场景,程序应该通过cc.director的API来控制场景流。
// 让导演对象执行目标场景
cc.director.runScene(scene);
// 获取当前正在执行的脚本
var scene = cc.director.getRunningScene();
// 将一个新场景推入场景栈中,并替换运行场景为这个新场景
var scene = cc.director.pushScene(scene);
// 将场景栈顶的场景推出场景栈,并替换运行场景为推出后栈顶的新场景
cc.director.popScene();
// 将场景栈中除了栈底的根场景以外的所有场景推出,并替换运行场景为根场景。
cc.director.popToRootScene()
除此之外,你可以通过cc.TransitionScene的效果类的转场特效来切换场景。
// 转场特效持续两秒
var transitionTime = 2;
// 创建下一个场景
var nextScene = new cc.Scene();
// 使用下一个场景创建转场特效场景
var transitionScene = new cc.TransitionProgressInOut(transitionTime, nextScene);
// 替换运行场景为转场特效场景
cc.director.runScene(transitionScene);
Cocos2d-js引擎中还提供其他很多种预设转场特效
环境设置和属性
由于导演对象控制整个游戏运行环境,导演对象中还提供一些常用的设置和属性:
// 获取游戏主循环是否被暂停
var paused = cc.director.isPaused();
// 设置或获取动画帧间隔,这个设置会直接影响帧率
var interval = cc.director.getAnimationInterval();
cc.director.setAnimationInterval(value);
// 设置或获取导演对象的内容放缩比例
var scale = cc.director.getContentScaleFactor();
cc.director.setContentScaleFactor(scaleFactor);
// 设置或获取游戏世界可视窗口的原点和大小
var origin = cc.director.getVisibleOrigin();
var size = cc.director.getVisibleSize();
// 获取游戏世界大小,winSize的大小通常等同于设计分辨率,而winSizeInPixel的大小是游戏世界的像素大小
var winSize = cc.director.getWinSize();
var winSizeInPixel = cc.director.getWinSizeInPixels();
// 设置或获取调试信息是否被显示
var isDisplaying = cc.director.isDisplayStats();
cc.director.setDisplayStats(displayStats);
// 设置或获取视图,它指向`cc.view`
var view = cc.director.getOpenGLView();
cc.director.setOpenGLView(openGLView);
// 设置或获取WebGL/OpenGL的投影,
// 可能的投影类型包括:cc.Director.PROJECTION_2D, cc.Director.PROJECTION_3D, cc.Director.PROJECTION_CUSTOM
cc.director.getProjection();
cc.director.setProjection(projection);
导演对象系统事件
导演对象还有一些内建的系统事件:
cc.Director.EVENT_AFTER_DRAW:这个事件在每一帧图像的绘制完成之后被触发。
cc.Director.EVENT_AFTER_VISIT:这个事件在每一帧场景树遍历之后被触发。
cc.Director.EVENT_AFTER_UPDATE:这个事件在每一帧计时器任务执行完成之后被触发。
cc.Director.EVENT_PROJECTION_CHANGED:这个事件在导演对象的投影属性被修改之后触发。
源引:http://www.ipastimes.com/post/4.html
Cocos2d-js cc.director介绍相关推荐
- r语言 编辑 d3.js_d3.js的语言介绍
r语言 编辑 d3.js by Matt Oxley 由马特·奥克斯利(Matt Oxley) d3.js的语言介绍 (A linguistic introduction to d3.js) 如何从一 ...
- CC攻击介绍及如何防御
CC攻击介绍 CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,前身名为Fatboy攻击,也是一种常见的网站攻击方法.攻击者借助代理服务器生成指向受害主机的合 ...
- Cocos2d JS 之消灭星星(九) 处理星星类之——移动和消灭星星
1 /* 2 * 本层拥有处理星星的实例化以及对星星的操作 3 * 1/排列星星 4 * 2/移动和删除星星 5 */ 6 var GAMESTARLAYOUT; 7 var GameStarLayo ...
- Jquery提交表单 Form.js官方插件介绍
來源:http://hi.baidu.com/dereky/blog/item/f9e8ab64c52f4ff3f736540c.html [JQuery框架应用]:form.js官方插件介绍 For ...
- Node.js: NPM 使用介绍
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器下载并 ...
- 【ClearCase 学习笔记 】之(4/4)CC基本操作介绍
ClearCase学习笔记: 一. CC四大功能详述 二. CC结构及设置 三. CC的硬件需求及支持平台 四. CC基本操作介绍 本文主要内容: CC基本操作介绍 (壹)新增视图(View) (贰) ...
- JS混淆加密介绍,以及简单代码示例
JS混淆加密介绍 1.将字符串转换为数字: 2.将数字转换为字符串: 3.将字符串转换为数字: 4.将数字转换为字符串: 5.总结 JS混淆加密是一种常用的安全加密技术,它可以将JavaScript代 ...
- fullPage.js魅蓝手机介绍页面右侧圆点滚动
下载地址 fullPage.js魅蓝手机介绍页面右侧圆点滚动,常见的单屏滚动介绍产品的特效,用右侧的圆点当做索引. dd:
- 图形化开发(一)——D3.js的基本介绍、技术原理
图形化开发(一)--D3.js的基本介绍.技术原理 D3.js 为什么学习D3 中文官网--https://www.d3js.org.cn/ github--https://github.com/d3 ...
最新文章
- c程序语言设定定义域,4.22C语言学习日记:变量的定义域及编译预处理
- 复旦大学计算机保研经历,#易保研#经验分享 | 个人经历分享,圆梦复旦大学!...
- 影院售票系统 php源码,影院售票系统
- mysql8中文手册_mysql8 参考手册--mysql8 官方介绍
- 黑苹果卡在苹果logo_黑苹果的历史
- ad自动布线过孔_AD15布线方法汇总
- 一个有意思的VMP破解 旺旺吧上网经营管理系统
- sci论文发表的重复率要求低于多少
- 申请美国密歇根州立大学需要具备哪些条件?
- [深度学习论文笔记]3D AGSE-VNet: An Automatic Brain Tumor MRI Data Segmentation Framework
- 上交大计算机科学与技术,上海交通大学计算机科学与工程系(CSE)
- 聊一聊Java如何接入招行一网通支付功能
- 基于Azure Kinect SDK获取物体rgb图、深度图、红外IR图和点云数据并保存到本地
- Java调用被子类重写的方法
- 福昕阅读器无法注释问题
- 如何用大数据构建精准用户画像?
- 马斯克最新访谈全文,信息量极大,远见令人震撼
- 【软件工程导论】1.软件过程模型
- delphi 多线程
- TI DSP 28335 看门狗(WatchDog)及通过看门狗实现中断