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

  • any
    • Director

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

Events

Static Readonly EVENT_AFTER_DRAW

EVENT_AFTER_DRAW: "director_after_draw" = "director_after_draw"
en

The event which will be triggered after the rendering process.

zh

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

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_BEFORE_COMMIT

EVENT_BEFORE_COMMIT: "director_before_commit" = "director_before_commit"
en

The event which will be triggered before the pipeline render commit.

zh

当前渲染帧提交前所触发的事件。

Static Readonly EVENT_BEFORE_DRAW

EVENT_BEFORE_DRAW: "director_before_draw" = "director_before_draw"
en

The event which will be triggered before the rendering process.

zh

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

Static Readonly EVENT_BEFORE_PHYSICS

EVENT_BEFORE_PHYSICS: "director_before_physics" = "director_before_physics"

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

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 _startTime

_startTime: number

Private _systems

_systems: System[]

Private _totalFrames

_totalFrames: number

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_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

Private init

  • _init(): Promise<void>

Private initOnRendererInitialized

  • _initOnRendererInitialized(): void

calculateDeltaTime

  • calculateDeltaTime(now: any): void
  • 计算从上一帧到现在的时间间隔,结果保存在私有属性中

    Parameters

    • now: any

    Returns void

convertToGL

convertToUI

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

getTotalTime

  • getTotalTime(): number

getWinSize

  • getWinSize(): Size

getWinSizeInPixels

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

    deprecated

    since v2.0

    Returns Size

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

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

reset

  • reset(): void

resume

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

    Returns void

Private runScene

runSceneImmediate

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

    Parameters

    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

unregisterSystem

  • unregisterSystem(sys: System): void

Generated using TypeDoc