Director
类型
继承于 EventTarget
模块: cc
注意:用 cc.director 代替 cc.Director。
cc.director 一个管理你的游戏的逻辑流程的单例对象。
由于 cc.director 是一个单例,你不需要调用任何构造函数或创建函数,
使用它的标准方法是通过调用:
- cc.director.methodName();
它创建和处理主窗口并且管理什么时候执行场景。
cc.director 还负责:
- 初始化 OpenGL 环境。
- 设置OpenGL像素格式。(默认是 RGB565)
- 设置OpenGL缓冲区深度 (默认是 0-bit)
- 设置空白场景的颜色 (默认是 黑色)
- 设置投影 (默认是 3D)
- 设置方向 (默认是 Portrait)
cc.director 设置了 OpenGL 默认环境
- GL_TEXTURE_2D 启用。
- GL_VERTEX_ARRAY 启用。
- GL_COLOR_ARRAY 启用。
- GL_TEXTURE_COORD_ARRAY 启用。
cc.director 也同步定时器与显示器的刷新速率。
特点和局限性:
- 将计时器 & 渲染与显示器的刷新频率同步。
- 只支持动画的间隔 1/60 1/30 & 1/15。
索引
属性(properties)
EVENT_PROJECTION_CHANGED
String
cc.Director 投影变化的事件。EVENT_BEFORE_SCENE_LOADING
String
加载新场景之前所触发的事件。EVENT_BEFORE_SCENE_LAUNCH
String
运行新场景之前所触发的事件。EVENT_AFTER_SCENE_LAUNCH
String
运行新场景之后所触发的事件。EVENT_BEFORE_UPDATE
String
每个帧的开始时所触发的事件。EVENT_AFTER_UPDATE
String
将在引擎和组件 “update” 逻辑之后所触发的事件。EVENT_BEFORE_VISIT
String
访问渲染场景树之前所触发的事件。EVENT_AFTER_VISIT
String
访问渲染场景图之后所触发的事件,渲染队列已准备就绪,但在这一时刻还没有呈现在画布上。EVENT_AFTER_DRAW
String
渲染过程之后所触发的事件。PROJECTION_2D
Number
Constant for 2D projection (orthogonal projection)PROJECTION_3D
Number
Constant for 3D projection with a fovy=60, znear=0.5f and zfar=1500.PROJECTION_CUSTOM
Number
Constant for custom projection, if cc.Director's projection set to it, it calls "updateProjection" on the projection delegate.PROJECTION_DEFAULT
Number
Constant for default projection of cc.Director, default projection is 2D projection
方法
convertToUI
将触摸点的 WebGL View 坐标转换为屏幕坐标。getWinSize
获取视图的大小,以点为单位。getWinSizeInPixels
获取视图大小,以像素为单位(这里的像素指的是资源分辨率。getVisibleSize
获取运行场景的可见大小。getVisibleOrigin
获取视图在游戏内容中的坐标原点。pause
暂停正在运行的场景,该暂停只会停止游戏逻辑执行,但是不会停止渲染和 UI 响应。runSceneImmediate
立刻切换指定场景。runScene
运行指定场景。loadScene
通过场景名称进行加载场景。preloadScene
预加载场景,你可以在任何时候调用这个方法。_loadSceneByUuid
Loads the scene by its uuid.resume
恢复暂停场景的游戏逻辑,如果当前场景没有暂停将没任何事情发生。setDepthTest
启用/禁用深度测试(在 Canvas 渲染模式下不会生效)。setClearColor
设置场景的默认擦除颜色。setProjection
设置 OpenGL 投影。setViewport
设置视窗(请不要主动调用这个接口,除非你知道你在做什么)。getProjection
获取 OpenGL 投影。setAlphaBlending
启用/禁用 透明度融合。isSendCleanupToScene
更换场景时是否接收清理消息。getRunningScene
获取当前运行的渲染场景,一般情况下,你不会需要用到这个接口,请使用 getScene。getScene
获取当前逻辑场景。getAnimationInterval
获取单位帧执行时间。isDisplayStats
获取是否显示 FPS 信息。setDisplayStats
设置是否在左下角显示 FPS。isNextDeltaTimeZero
返回下一个 “delta time” 是否等于零。isPaused
是否处于暂停状态。getTotalFrames
获取 director 启动以来游戏运行的总帧数。getScheduler
获取和 director 相关联的 cc.Scheduler。setScheduler
设置和 director 相关联的 cc.Scheduler。getActionManager
获取和 director 相关联的 cc.ActionManager(动作管理器)。setActionManager
设置和 director 相关联的 cc.ActionManager(动作管理器)。getCollisionManager
Returns the cc.CollisionManager associated with this director.getPhysicsManager
Returns the cc.PhysicsManager associated with this director.getDeltaTime
获取上一帧的 “delta time”。on
注册事件目标的特定事件类型回调。off
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。targetOff
在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。once
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。dispatchEvent
分发事件到事件流中。emit
该对象直接发送事件, 这种方法不会对事件传播到任何其他对象。
事件
cc.Director.EVENT_PROJECTION_CHANGED
cc.Director 投影变化的事件。cc.Director.EVENT_BEFORE_SCENE_LOADING
加载新场景之前所触发的事件。cc.Director.EVENT_AFTER_SCENE_LAUNCH
运行新场景之后所触发的事件。cc.Director.EVENT_BEFORE_UPDATE
每个帧的开始时所触发的事件。cc.Director.EVENT_AFTER_UPDATE
将在引擎和组件 “update” 逻辑之后所触发的事件。cc.Director.EVENT_BEFORE_VISIT
访问渲染场景树之前所触发的事件。cc.Director.EVENT_AFTER_VISIT
访问渲染场景图之后所触发的事件,渲染队列已准备就绪,但在这一时刻还没有呈现在画布上。cc.Director.EVENT_AFTER_DRAW
渲染过程之后所触发的事件。
Details
属性(properties)
EVENT_PROJECTION_CHANGED
cc.Director 投影变化的事件。
meta | description |
---|---|
类型 | String |
定义于 | cocos2d/core/CCDirector.js:1276 |
EVENT_BEFORE_SCENE_LOADING
加载新场景之前所触发的事件。
meta | description |
---|---|
类型 | String |
定义于 | cocos2d/core/CCDirector.js:1292 |
EVENT_BEFORE_SCENE_LAUNCH
运行新场景之前所触发的事件。
meta | description |
---|---|
类型 | String |
定义于 | cocos2d/core/CCDirector.js:1308 |
EVENT_AFTER_SCENE_LAUNCH
运行新场景之后所触发的事件。
meta | description |
---|---|
类型 | String |
定义于 | cocos2d/core/CCDirector.js:1324 |
EVENT_BEFORE_UPDATE
每个帧的开始时所触发的事件。
meta | description |
---|---|
类型 | String |
定义于 | cocos2d/core/CCDirector.js:1339 |
EVENT_AFTER_UPDATE
将在引擎和组件 “update” 逻辑之后所触发的事件。
meta | description |
---|---|
类型 | String |
定义于 | cocos2d/core/CCDirector.js:1354 |
EVENT_BEFORE_VISIT
访问渲染场景树之前所触发的事件。
meta | description |
---|---|
类型 | String |
定义于 | cocos2d/core/CCDirector.js:1369 |
EVENT_AFTER_VISIT
访问渲染场景图之后所触发的事件,渲染队列已准备就绪,但在这一时刻还没有呈现在画布上。
meta | description |
---|---|
类型 | String |
定义于 | cocos2d/core/CCDirector.js:1387 |
EVENT_AFTER_DRAW
渲染过程之后所触发的事件。
meta | description |
---|---|
类型 | String |
定义于 | cocos2d/core/CCDirector.js:1405 |
PROJECTION_2D
Constant for 2D projection (orthogonal projection)
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/CCDirector.js:1568 |
PROJECTION_3D
Constant for 3D projection with a fovy=60, znear=0.5f and zfar=1500.
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/CCDirector.js:1577 |
PROJECTION_CUSTOM
Constant for custom projection, if cc.Director's projection set to it, it calls "updateProjection" on the projection delegate.
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/CCDirector.js:1586 |
PROJECTION_DEFAULT
Constant for default projection of cc.Director, default projection is 2D projection
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/CCDirector.js:1595 |
方法
convertToUI
将触摸点的 WebGL View 坐标转换为屏幕坐标。
meta | description |
---|---|
返回 | Vec2 |
定义于 | cocos2d/core/CCDirector.js:272 |
参数列表
glPoint
Vec2
getWinSize
获取视图的大小,以点为单位。
meta | description |
---|---|
返回 | Size |
定义于 | cocos2d/core/CCDirector.js:337 |
getWinSizeInPixels
获取视图大小,以像素为单位(这里的像素指的是资源分辨率。 如果要获取屏幕物理分辨率,需要用 cc.view.getFrameSize())
meta | description |
---|---|
返回 | Size |
定义于 | cocos2d/core/CCDirector.js:349 |
getVisibleSize
获取运行场景的可见大小。
meta | description |
---|---|
返回 | Size |
定义于 | cocos2d/core/CCDirector.js:371 |
getVisibleOrigin
获取视图在游戏内容中的坐标原点。
meta | description |
---|---|
返回 | Vec2 |
定义于 | cocos2d/core/CCDirector.js:379 |
pause
暂停正在运行的场景,该暂停只会停止游戏逻辑执行,但是不会停止渲染和 UI 响应。 如果想要更彻底得暂停游戏,包含渲染,音频和事件,请使用 Game.pause。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:395 |
runSceneImmediate
立刻切换指定场景。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:539 |
参数列表
scene
Scene The need run scene.onBeforeLoadScene
Function The function invoked at the scene before loading.onLaunched
Function The function invoked at the scene after launch.
runScene
运行指定场景。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:648 |
参数列表
scene
Scene The need run scene.onBeforeLoadScene
Function The function invoked at the scene before loading.onLaunched
Function The function invoked at the scene after launch.
loadScene
通过场景名称进行加载场景。
meta | description |
---|---|
返回 | Boolean |
定义于 | cocos2d/core/CCDirector.js:705 |
参数列表
sceneName
String The name of the scene to load.onLaunched
Function callback, will be called after scene launched.
preloadScene
预加载场景,你可以在任何时候调用这个方法。
调用完后,你仍然需要通过 cc.director.loadScene
来启动场景,因为这个方法不会执行场景加载操作。
就算预加载还没完成,你也可以直接调用 cc.director.loadScene
,加载完成后场景就会启动。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:753 |
参数列表
sceneName
String The name of the scene to preload.onLoaded
Function callback, will be called after scene loaded.error
Error null or the error object.
_loadSceneByUuid
Loads the scene by its uuid.
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:788 |
参数列表
uuid
String the uuid of the scene asset to loadonLaunched
FunctiononUnloaded
FunctiondontRunScene
Boolean Just download and initialize the scene but will not launch it,only take effect in the Editor.
resume
恢复暂停场景的游戏逻辑,如果当前场景没有暂停将没任何事情发生。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:851 |
setDepthTest
启用/禁用深度测试(在 Canvas 渲染模式下不会生效)。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:882 |
参数列表
on
Boolean
setClearColor
设置场景的默认擦除颜色。
支持全透明,但不支持透明度为中间值。要支持全透明需手工开启 cc.macro.ENABLE_TRANSPARENT_CANVAS。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:892 |
参数列表
clearColor
Color
setProjection
设置 OpenGL 投影。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:978 |
参数列表
projection
Number
setViewport
设置视窗(请不要主动调用这个接口,除非你知道你在做什么)。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:988 |
getProjection
获取 OpenGL 投影。
meta | description |
---|---|
返回 | Number |
定义于 | cocos2d/core/CCDirector.js:1008 |
setAlphaBlending
启用/禁用 透明度融合。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:1018 |
参数列表
on
Boolean
isSendCleanupToScene
更换场景时是否接收清理消息。
如果新场景是采用 push 方式进入的,那么旧的场景将不会接收到 “cleanup” 消息。
如果新场景取代旧的场景,它将会接收到 “cleanup” 消息。
meta | description |
---|---|
返回 | Boolean |
定义于 | cocos2d/core/CCDirector.js:1028 |
getRunningScene
获取当前运行的渲染场景,一般情况下,你不会需要用到这个接口,请使用 getScene。
meta | description |
---|---|
返回 | Scene |
定义于 | cocos2d/core/CCDirector.js:1044 |
getScene
获取当前逻辑场景。
meta | description |
---|---|
返回 | Scene |
定义于 | cocos2d/core/CCDirector.js:1057 |
示例
// This will help you to get the Canvas node in scene
cc.director.getScene().getChildByName('Canvas');
getAnimationInterval
获取单位帧执行时间。
meta | description |
---|---|
返回 | Number |
定义于 | cocos2d/core/CCDirector.js:1070 |
isDisplayStats
获取是否显示 FPS 信息。
meta | description |
---|---|
返回 | Boolean |
定义于 | cocos2d/core/CCDirector.js:1080 |
setDisplayStats
设置是否在左下角显示 FPS。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:1090 |
参数列表
displayStats
Boolean
isNextDeltaTimeZero
返回下一个 “delta time” 是否等于零。
meta | description |
---|---|
返回 | Boolean |
定义于 | cocos2d/core/CCDirector.js:1103 |
isPaused
是否处于暂停状态。
meta | description |
---|---|
返回 | Boolean |
定义于 | cocos2d/core/CCDirector.js:1113 |
getTotalFrames
获取 director 启动以来游戏运行的总帧数。
meta | description |
---|---|
返回 | Number |
定义于 | cocos2d/core/CCDirector.js:1123 |
getScheduler
获取和 director 相关联的 cc.Scheduler。
meta | description |
---|---|
返回 | Scheduler |
定义于 | cocos2d/core/CCDirector.js:1177 |
setScheduler
设置和 director 相关联的 cc.Scheduler。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:1187 |
参数列表
scheduler
Scheduler
getActionManager
获取和 director 相关联的 cc.ActionManager(动作管理器)。
meta | description |
---|---|
返回 | ActionManager |
定义于 | cocos2d/core/CCDirector.js:1199 |
setActionManager
设置和 director 相关联的 cc.ActionManager(动作管理器)。
meta | description |
---|---|
定义于 | cocos2d/core/CCDirector.js:1208 |
参数列表
actionManager
ActionManager
getCollisionManager
Returns the cc.CollisionManager associated with this director.
meta | description |
---|---|
返回 | CollisionManager |
定义于 | cocos2d/core/CCDirector.js:1234 |
getPhysicsManager
Returns the cc.PhysicsManager associated with this director.
meta | description |
---|---|
返回 | PhysicsManager |
定义于 | cocos2d/core/CCDirector.js:1243 |
getDeltaTime
获取上一帧的 “delta time”。
meta | description |
---|---|
返回 | Number |
定义于 | cocos2d/core/CCDirector.js:1252 |
on
注册事件目标的特定事件类型回调。
meta | description |
---|---|
返回 | Function |
定义于 | cocos2d/core/event/event-target.js:218 |
参数列表
type
String A string representing the event type to listen for.callback
Function The callback that will be invoked when the event is dispatched.The callback is ignored if it is a duplicate (the callbacks are unique).
event
Event event
target
Object The target (this object) to invoke the callback, can be nulluseCapture
Boolean When set to true, the capture argument prevents callbackfrom being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false, callback will NOT be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked when event's eventPhase attribute value is AT_TARGET.
示例
node.on(cc.Node.EventType.TOUCH_END, function (event) {
cc.log("this is callback");
}, node);
off
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:275 |
参数列表
type
String A string representing the event type being removed.callback
Function The callback to remove.target
Object The target (this object) to invoke the callback, if it's not given, only callback without target will be removeduseCapture
Boolean Specifies whether the callback being removed was registered as a capturing callback or not.If not specified, useCapture defaults to false. If a callback was registered twice, one with capture and one without, each must be removed separately. Removal of a capturing callback does not affect a non-capturing version of the same listener, and vice versa.
示例
// register touchEnd eventListener
var touchEnd = node.on(cc.Node.EventType.TOUCH_END, function (event) {
cc.log("this is callback");
}, node);
// remove touch end event listener
node.off(cc.Node.EventType.TOUCH_END, touchEnd, node);
// remove all touch end event listeners
node.off(cc.Node.EventType.TOUCH_END);
targetOff
在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:330 |
参数列表
target
Object The target to be searched for all related listeners
once
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:352 |
参数列表
type
String A string representing the event type to listen for.callback
Function The callback that will be invoked when the event is dispatched.The callback is ignored if it is a duplicate (the callbacks are unique).
event
Event event
target
Object The target (this object) to invoke the callback, can be nulluseCapture
Boolean When set to true, the capture argument prevents callbackfrom being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false, callback will NOT be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked when event's eventPhase attribute value is AT_TARGET.
示例
node.once(cc.Node.EventType.TOUCH_END, function (event) {
cc.log("this is callback");
}, node);
dispatchEvent
分发事件到事件流中。
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:397 |
参数列表
event
Event The Event object that is dispatched into the event flow
emit
该对象直接发送事件, 这种方法不会对事件传播到任何其他对象。
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:411 |
参数列表
message
String the message to senddetail
Any whatever argument the message needs
事件
cc.Director.EVENT_PROJECTION_CHANGED
Event
模块: cc
cc.Director 投影变化的事件。
索引
Details
cc.Director.EVENT_BEFORE_SCENE_LOADING
Event
模块: cc
加载新场景之前所触发的事件。
索引
Details
cc.Director.EVENT_AFTER_SCENE_LAUNCH
Event
模块: cc
运行新场景之后所触发的事件。
索引
Details
cc.Director.EVENT_BEFORE_UPDATE
Event
模块: cc
每个帧的开始时所触发的事件。
索引
Details
cc.Director.EVENT_AFTER_UPDATE
Event
模块: cc
将在引擎和组件 “update” 逻辑之后所触发的事件。
索引
Details
cc.Director.EVENT_BEFORE_VISIT
Event
模块: cc
访问渲染场景树之前所触发的事件。
索引
Details
cc.Director.EVENT_AFTER_VISIT
Event
模块: cc
访问渲染场景图之后所触发的事件,渲染队列已准备就绪,但在这一时刻还没有呈现在画布上。
索引
Details
cc.Director.EVENT_AFTER_DRAW
Event
模块: cc
渲染过程之后所触发的事件。