转载:https://blog.csdn.net/u013435551/article/details/38579747

在Cocos2d-x中,把统筹游戏大局的类抽象为导演类(Director),Director是整个cocos2d-x引擎的核心,是整个游戏的导航仪。游戏中的一些常用操作就是由Director来控制的,比如OpenGL ES的初始化,场景的转换,游戏暂停继续的控制,世界坐标和GL坐标之间的切换,对节点的控制等,还有一些游戏数据的保存调用,屏幕尺寸的获取等都要由Director类来管理控制的。

因为Director是游戏项目的总导演,会经常调用进行一些控制,所以该Director利用了单件设计模式,也就是整个游戏里只有一个导演类。用getInstance() 方法取得Director的实例。

Tips:在cocos2d-x2.x的版本中使用sharedDirector()方法来获取导演类对象,而在3.x的版本中使用getInstance()来获取,不过sharedDirector()也可以使用。

Director类的继承关系如下:

DisplayLinkDirector继承CCDirector,是一个可以自动刷新的导演类。它支持60/1、1/30和1/15三种动画间隔(帧间隔)。

Director类的主要公共函数如下:

函数名

返回类型

描述

getRunningScene

场景类

获取当前正在运行的场景

getAnimationInterval

浮点型

获取每帧的时间

setAnimationInterval

浮点型

设置每帧的时间

isDisplayStats

布尔型

返回是否在屏幕左下角显示每帧的时间

setDisplayStats

设置是否在屏幕左下角显示每帧的时间

getSecondsPerFrame

浮点型

获取每帧的时间(单位为秒)

getOpenGLView

GL视图

获取绘制所有对象的OpenGL视图

setOpenGLView

设置绘制所有对象的OpenGL视图

isPaused

布尔型

导演类对象是否暂停

getTotalFrames

整型

获取从导演类开始运行的帧数

getProjection

投影类

获取OpenGL投影

setProjection

设置OpenGL投影

setViewport

设置OpenGL接口

isSendCleanupToScene

布尔型

切换的场景是否接收清除信息

getNotificationNode

节点类

获取一个在主场景遍历后遍历的节点对象

setNotificationNode

设置一个在主场景遍历后遍历的节点对象

getWinSize

尺寸

获取屏幕大小(单位为点)

getWinSizeInPixels

尺寸

获取像素级的屏幕大小(单位为像素)

getVisibleSize

尺寸

获取可见屏幕大小

getVisibleOrigin

矢量

获取可见屏幕的方向

convertToGL

矢量

转化为OpenGL坐标系

convertToUI

矢量

转化为UI坐标系

runWithScene

运行当前场景

pushScene

挂起当前场景,压入栈中

popScene

从栈中弹出场景

popToRootScene

从栈中弹出所有场景直到根场景

popToSceneStackLevel

从栈中弹出所有场景直到某个等级

(等级为0为导演,等级为1为根场景)

replaceScene

替换当前场景

end

结束游戏

pause

暂停游戏

resume

恢复游戏

stopAnimation

停止动画

startAnimation

开始动画

drawScene

绘制场景

purgeCachedData

移除所有缓存数据

setDefaultValues

基于配置信息设置默认值

setGLDefaultValues

设置OpenGL默认值

setAlphaBlending

设置OpenGL是否使用alpha通道

setDepthTest

设置是否测试OpenGL深度

setContentScaleFactor

设置表面像素大小(不同于屏幕大小)

getContentScaleFactor

浮点型

获取表面像素大小

getScheduler

调度类

获取时间调度对象

setScheduler

设置时间调度对象

getActionManager

动作管理类

获取动作管理对象

setActionManager

设置动作管理对象

getEventDispatcher

事件调度类

获取事件调度对象

setEventDispatcher

设置事件调度对象

getRenderer

渲染器

返回渲染器

getDeltaTime

浮点型

返回控制台

getFrameRate

浮点型

获取帧率
---------------------
作者:倾城_之泪
来源:CSDN
原文:https://blog.csdn.net/u013435551/article/details/38579747
版权声明:本文为博主原创文章,转载请附上博文链接!

【转】cocos2dx3.2学习笔记之Director(导演类)的更多相关文章

  1. java学习笔记07--日期操作类

    java学习笔记07--日期操作类   一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...

  2. Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  3. AJPFX学习笔记JavaAPI之String类

    学习笔记JavaAPI之String类 [size=10.5000pt]一.所属包java.lang.String,没有子类.特点:一旦被初始化就不可以被改变. 创建类对象的两种方式: String ...

  4. 并发编程学习笔记(10)----并发工具类CyclicBarrier、Semaphore和Exchanger类的使用和原理

    在jdk中,为并发编程提供了CyclicBarrier(栅栏),CountDownLatch(闭锁),Semaphore(信号量),Exchanger(数据交换)等工具类,我们在前面的学习中已经学习并 ...

  5. JVM学习笔记-第六章-类文件结构

    JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁 ...

  6. java学习笔记之日期日历类

    java学习笔记之日期日历 Date日期类概述: 表示特定的瞬间,精确到毫秒 Date类的构造方法: 1.空参数构造方法 Date date = new Date(); 获取到当前操作系统中的时间和日 ...

  7. Cocos2d-x-3.6学习笔记第一天

    系统环境: win7,python2.7 开发工具:vs2013 cocos版本:cocos2d-x-3.6 暂无模拟手机的环境 新建我的第一个cocos2d项目 1.打开cmd,cd到cocos2d ...

  8. cocos2dx3.2 学习笔记(2)--ActionManagerTest

    前面看完了 CppTests的基本框架及流程.如今准备看看详细的每一个Test了 从哪里開始看呢. 额,就第一个吧(ActionManagerTest) 首先看看效果吧,执行了下.发现有几种效果.看不 ...

  9. Python学习笔记(一)类和继承的使用

    一年前就打算学Python了,折腾来折腾去也一直没有用熟练,主要是类那一块不熟,昨天用Python写了几个网络编程的示例,感觉一下子迈进了很多.这几天把学习Python的笔记整理一下,内容尽量简洁. ...

随机推荐

  1. Kubernetes组件与架构

    转载请标明出处: 文章首发于>https://www.fangzhipeng.com/kubernetes/2018/09/30/k8s-basic1/ 本文出自方志朋的博客 Kubernete ...

  2. Unity 游戏框架搭建 (十八) 静态扩展 + 泛型实现transform的链式编程

    本篇文章介绍如何实现如下代码的链式编程: C# this.Position(Vector3.one) .LocalScale(1.0f) .Rotation(Quaternion.identity); ...

  3. Swift_可选链

    Swift_可选链 点击查看源码 //可选链 func test() { class Person { //可选属性可能为nil或Residence类 var residence: Residence ...

  4. 『ACM C++』 PTA 天梯赛练习集L1 | 052-053

    今日刷题,水题水题 ------------------------------------------------L1-052------------------------------------ ...

  5. UCanCode发布升级E-Form++可视化源码组件库2018全新版 !

    2018年. 成都 UCanCode发布升级E-Form++可视化源码组件库2018全新版 ! --- 全面性能提升,UCanCode有史以来最强大的版本发布! E-Form++可视化源码组件库企业版 ...

  6. Linux性能检查命令总结[转]

    一些常用的网络.IO.内存监控指令,Linux性能检查命令总结

  7. PredicateBuilder

    using System; using System.Linq; using System.Linq.Expressions; namespace Oyang.Tool { public static ...

  8. 内网环境下为Elasticsearch 5.0.2 添加head服务

    背景: 本项目的服务器是内网环境,没有网络,因此需要在离线的环境中,安装head服务. 需要用到的安装包有: node的安装包 elasticsearch的head插件源码 说明:此次只讲述为elas ...

  9. S3C2440启动程序运行过程

    s3c2440有两种启动方式,一种Nor flash 启动,一种Nand flash 启动. 由于NAND FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在S3C2440A的8 ...

  10. Qt上FFTW組件的编译与安裝

    Qt上FFTW組件的編譯安裝 FFTW是一個做頻譜非常實用的組件,本文講述在Windows和Linux兩個平臺使用FFTW組件.Windows下的的FFTW組件已經編譯好成爲dll文件,按照開發應用的 ...