Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Director

注意:用 `director` 代替 `Director`。
`director` 一个管理你的游戏的逻辑流程的单例对象。
由于 `director` 是一个单例,你不需要调用任何构造函数或创建函数,
使用它的标准方法是通过调用:
- `director.methodName();`
它创建和处理主窗口并且管理什么时候执行场景。

`director` 还负责:
- 初始化 OpenGL 环境。
- 设置OpenGL像素格式。(默认是 RGB565)
- 设置OpenGL缓冲区深度 (默认是 0-bit)
- 设置空白场景的颜色 (默认是 黑色)
- 设置投影 (默认是 3D)
- 设置方向 (默认是 Portrait)

`director` 设置了 OpenGL 默认环境
- GL_TEXTURE_2D 启用。
- GL_VERTEX_ARRAY 启用。
- GL_COLOR_ARRAY 启用。
- GL_TEXTURE_COORD_ARRAY 启用。

`director` 也同步定时器与显示器的刷新速率。
特点和局限性:
- 将计时器 & 渲染与显示器的刷新频率同步。
- 只支持动画的间隔 1/60 1/30 & 1/15。

Hierarchy

Index

Type aliases

Static OnBeforeLoadScene

OnBeforeLoadScene: () => void

Type declaration

    • (): void
    • Returns void

Static OnLoadSceneProgress

OnLoadSceneProgress: (completedCount: number, totalCount: number, item: any) => void
param

The number of the items that are already completed.

param

The total number of the items.

param

The latest item which flow out the pipeline.

Type declaration

    • (completedCount: number, totalCount: number, item: any): void
    • Parameters

      • completedCount: number
      • totalCount: number
      • item: any

      Returns void

Static OnSceneLaunched

OnSceneLaunched: (error: null | Error, scene?: Scene) => void

Type declaration

    • (error: null | Error, scene?: Scene): void
    • Parameters

      • error: null | Error
      • Optional scene: Scene

      Returns void

Static OnSceneLoaded

OnSceneLoaded: (error: null | Error, sceneAsset?: SceneAsset) => void

Type declaration

    • (error: null | Error, sceneAsset?: SceneAsset): void
    • Parameters

      • error: null | Error
      • Optional sceneAsset: SceneAsset

      Returns void

Static OnUnload

OnUnload: () => void

Type declaration

    • (): void
    • Returns void

Constructors

constructor

Properties

_compScheduler

_compScheduler: ComponentScheduler

Private _deltaTime

_deltaTime: number

Private _invalid

_invalid: boolean

Private _lastUpdate

_lastUpdate: number

Private _loadingScene

_loadingScene: string

_nodeActivator

_nodeActivator: NodeActivator

Private _paused

_paused: boolean

Private _purgeDirectorInNextLoop

_purgeDirectorInNextLoop: boolean

Private _root

_root: Root | null

Private _scene

_scene: Scene | null

Private _scheduler

_scheduler: Scheduler

Private _systems

_systems: System[]

Private _totalFrames

_totalFrames: number

Static Readonly EVENT_AFTER_DRAW

EVENT_AFTER_DRAW: "director_after_draw" = "director_after_draw"

渲染过程之后所触发的事件。

Static Readonly EVENT_AFTER_PHYSICS

EVENT_AFTER_PHYSICS: "director_after_physics" = "director_after_physics"

The event which will be triggered after the physics process.
物理过程之后所触发的事件。

Static Readonly EVENT_AFTER_SCENE_LAUNCH

EVENT_AFTER_SCENE_LAUNCH: "director_after_scene_launch" = "director_after_scene_launch"

运行新场景之后所触发的事件。

Static Readonly EVENT_AFTER_UPDATE

EVENT_AFTER_UPDATE: "director_after_update" = "director_after_update"

将在引擎和组件 “update” 逻辑之后所触发的事件。

Static Readonly EVENT_BEFORE_DRAW

EVENT_BEFORE_DRAW: "director_before_draw" = "director_before_draw"

渲染过程之前所触发的事件。

Static Readonly EVENT_BEFORE_PHYSICS

EVENT_BEFORE_PHYSICS: "director_before_physics" = "director_before_physics"

The event which will be triggered before the physics process.
物理过程之前所触发的事件。

Static Readonly EVENT_BEFORE_SCENE_LAUNCH

EVENT_BEFORE_SCENE_LAUNCH: "director_before_scene_launch" = "director_before_scene_launch"

运行新场景之前所触发的事件。

Static Readonly EVENT_BEFORE_SCENE_LOADING

EVENT_BEFORE_SCENE_LOADING: "director_before_scene_loading" = "director_before_scene_loading"

加载新场景之前所触发的事件。

Static Readonly EVENT_BEFORE_UPDATE

EVENT_BEFORE_UPDATE: "director_before_update" = "director_before_update"

每个帧的开始时所触发的事件。

Static Readonly EVENT_INIT

EVENT_INIT: "director_init" = "director_init"

Director 单例初始化时触发的事件

Static Readonly EVENT_RESET

EVENT_RESET: "director_reset" = "director_reset"

Director 单例重置时触发的事件

Static instance

instance: Director

Accessors

root

  • get root(): null | Root

Methods

getSceneUuid

  • getSceneUuid(key: string | number): any

Private init

  • _init(): boolean

Private initOnRendererInitialized

  • _initOnRendererInitialized(): void

Private loadSceneByUuid

  • loadSceneByUuid(uuid: string, doNotRun?: undefined | false | true): void
  • loadSceneByUuid(uuid: string, onLaunched?: OnSceneLaunched, doNotRun?: undefined | false | true): void
  • loadSceneByUuid(uuid: string, onLaunched?: OnSceneLaunched, onUnloaded?: OnUnload, doNotRun?: undefined | false | true): void
  • 通过 uuid 加载场景。

    Parameters

    • uuid: string

      场景资源的 uuid。

    • Optional doNotRun: undefined | false | true

      仅加载和初始化场景,但并不运行。此参数仅在编辑器环境中生效。

    Returns void

  • Parameters

    • uuid: string
    • Optional onLaunched: OnSceneLaunched
    • Optional doNotRun: undefined | false | true

    Returns void

  • Parameters

    • uuid: string
    • Optional onLaunched: OnSceneLaunched
    • Optional onUnloaded: OnUnload
    • Optional doNotRun: undefined | false | true

    Returns void

calculateDeltaTime

  • calculateDeltaTime(): void

convertToGL

convertToUI

emit

  • emit(type: EventType, arg0?: any, arg1?: any, arg2?: any, arg3?: any, arg4?: any): void

end

  • end(): void

getAnimationInterval

  • getAnimationInterval(): number

getAnimationManager

  • getAnimationManager(): any
  • 获取和 director 相关联的 AnimationManager(动画管理器)。请使用 getSystem(AnimationManager.ID) 来替代

    deprecated

    Returns any

getCurrentTime

  • getCurrentTime(): number

getDeltaTime

  • getDeltaTime(): number

getRunningScene

  • getRunningScene(): null | Scene

getScene

  • getScene(): Scene | null
  • 获取当前逻辑场景。

    example
    import { director } from 'cc';
    // This will help you to get the Canvas node in scene
    director.getScene().getChildByName('Canvas');

    Returns Scene | null

getScheduler

getSystem

  • getSystem(name: string): undefined | System

getTotalFrames

  • getTotalFrames(): number

getWinSize

  • getWinSize(): Size

getWinSizeInPixels

  • getWinSizeInPixels(): Size
  • 获取视图大小,以像素为单位(这里的像素指的是资源分辨率。 如果要获取屏幕物理分辨率,需要用 view.getFrameSize()

    deprecated

    since v2.0

    Returns Size

hasEventListener

  • hasEventListener(type: string, callback?: Function, target?: undefined | object): boolean
  • 检查指定事件是否已注册回调。

    Parameters

    • type: string

      Event type.

    • Optional callback: Function

      Callback function when event triggered.

    • Optional target: undefined | object

      Callback callee.

    Returns boolean

isPaused

  • isPaused(): boolean

loadScene

  • 通过场景名称进行加载场景。

    Parameters

    • sceneName: string

      The name of the scene to load.

    • Optional onLaunched: OnSceneLaunched

      callback, will be called after scene launched.

    • Optional onUnloaded: OnUnload

    Returns boolean

    if error, return false

mainLoop

  • mainLoop(time: number): void

off

  • 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。

    example

    import { log } from 'cc'; // register fire eventListener var callback = eventTarget.on('fire', function () { log("fire in the hole"); }, target); // remove fire event listener eventTarget.off('fire', callback, target); // remove all fire event listeners eventTarget.off('fire');

    Type parameters

    • TFunction: Function

    Parameters

    • type: EventType

      A string representing the event type being removed.

    • Optional callback: TFunction

      The callback to remove.

    • Optional thisArg: any

    Returns void

on

  • on<TFunction>(type: EventType, callback: TFunction, thisArg?: any, once?: undefined | false | true): typeof callback
  • 注册事件目标的特定事件类型回调。这种类型的事件应该被 emit 触发。

    example

    import { log } from 'cc'; eventTarget.on('fire', function () { log("fire in the hole"); }, node);

    Type parameters

    • TFunction: Function

    Parameters

    • type: EventType

      A string representing the event type to listen for.

    • callback: TFunction

      The callback that will be invoked when the event is dispatched. The callback is ignored if it is a duplicate (the callbacks are unique).

    • Optional thisArg: any

      The target (this object) to invoke the callback, can be null

    • Optional once: undefined | false | true

    Returns typeof callback

    • Just returns the incoming callback so you can save the anonymous function easier.

once

  • once<TFunction>(type: EventType, callback: TFunction, thisArg?: any): typeof callback
  • 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。

    example

    import { log } from 'cc'; eventTarget.once('fire', function () { log("this is the callback and will be invoked only once"); }, node);

    Type parameters

    • TFunction: Function

    Parameters

    • type: EventType

      A string representing the event type to listen for.

    • callback: TFunction

      The callback that will be invoked when the event is dispatched. The callback is ignored if it is a duplicate (the callbacks are unique).

    • Optional thisArg: any

    Returns typeof callback

pause

  • pause(): void
  • 暂停正在运行的场景,该暂停只会停止游戏逻辑执行,但是不会停止渲染和 UI 响应。
    如果想要更彻底得暂停游戏,包含渲染,音频和事件,请使用 game.pause

    Returns void

preloadScene

  • 预加载场景,你可以在任何时候调用这个方法。 调用完后,你仍然需要通过 director.loadScene 来启动场景,因为这个方法不会执行场景加载操作。
    就算预加载还没完成,你也可以直接调用 director.loadScene,加载完成后场景就会启动。

    Parameters

    • sceneName: string

      场景名称。

    • Optional onLoaded: OnSceneLoaded

      加载回调。

    Returns void

  • 预加载场景,你可以在任何时候调用这个方法。 调用完后,你仍然需要通过 director.loadScene 来启动场景,因为这个方法不会执行场景加载操作。
    就算预加载还没完成,你也可以直接调用 director.loadScene,加载完成后场景就会启动。

    Parameters

    Returns void

purgeCachedData

  • purgeCachedData(): void

purgeDirector

  • purgeDirector(): void
  • 清除 director 本身,包括停止所有的计时器,
    移除所有的事件监听器,清理并退出当前运行的场景,停止所有动画,清理缓存数据。

    Returns void

registerSystem

  • registerSystem(name: string, sys: System, priority: number): void

removeAll

  • removeAll(typeOrTarget: string | object): void
  • 移除在特定事件类型中注册的所有回调或在某个目标中注册的所有回调。

    Parameters

    • typeOrTarget: string | object

      The event type or target with which the listeners will be removed

    Returns void

reset

  • reset(): void

resume

  • resume(): void
  • 恢复暂停场景的游戏逻辑,如果当前场景没有暂停将没任何事情发生。

    Returns void

Private runScene

runSceneImmediate

  • 运行指定场景。将正在运行的场景替换为(或重入为)新场景。新场景将立即启动。

    Parameters

    • scene: Scene

      The need run scene.

    • Optional onBeforeLoadScene: OnBeforeLoadScene

      The function invoked at the scene before loading.

    • Optional onLaunched: OnSceneLaunched

      The function invoked at the scene after launch.

    Returns void

setAnimationInterval

  • setAnimationInterval(value: number): void
  • 设置动画间隔,这不控制主循环。
    要控制游戏的帧速率,请使用 game.setFrameRate

    deprecated

    since v2.0

    Parameters

    • value: number

      The animation interval desired.

    Returns void

setClearColor

  • setClearColor(clearColor: Color): void
  • 设置场景的默认擦除颜色。
    支持全透明,但不支持透明度为中间值。要支持全透明需手工开启 macro.ENABLE_TRANSPARENT_CANVAS

    deprecated

    since v2.0

    Parameters

    Returns void

setDepthTest

  • setDepthTest(value: boolean): void
  • 启用/禁用深度测试(在 Canvas 渲染模式下不会生效)。

    deprecated

    since v2.0

    Parameters

    • value: boolean

    Returns void

setScheduler

startAnimation

  • startAnimation(): void

stopAnimation

  • stopAnimation(): void

targetOff

  • targetOff(typeOrTarget: string | object): void
  • 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。

    Parameters

    • typeOrTarget: string | object

      The target to be searched for all related listeners

    Returns void

unregisterSystem

  • unregisterSystem(sys: System): void

Generated using TypeDoc