Options
All
  • Public
  • Public/Protected
  • All
Menu

Class TiledLayer

渲染 TMX layer。

Hierarchy

Index

Constructors

Properties

Accessors

Methods

Object literals

Constructors

constructor

Properties

Private __prefab

__prefab: CompPrefabInfo | null = null

Protected _animations

_animations: TiledAnimationType | null = null

Protected _assembler

_assembler: IAssembler | null = null

Protected _blendHash

_blendHash: number = 0

Protected _blendState

_blendState: BlendState = new BlendState()

Protected _color

_color: Color = Color.WHITE.clone()

Protected _cullingDirty

_cullingDirty: boolean = true

Protected _customMaterial

_customMaterial: Material | null = null

Protected _delegateSrc

_delegateSrc: Node | null = null

Protected Optional _diffX1

_diffX1: undefined | number

Protected Optional _diffY1

_diffY1: undefined | number

Protected _downOffset

_downOffset: number = 0

Protected _dstBlendFactor

_dstBlendFactor: BlendFactor = BlendFactor.ONE_MINUS_SRC_ALPHA

Protected Optional _enableCulling

_enableCulling: undefined | false | true

Private _enabled

_enabled: boolean = true

Protected _hasAniGrid

_hasAniGrid: boolean = false

Protected _hasTiledNodeGrid

_hasTiledNodeGrid: boolean = false

Protected Optional _hexSideLength

_hexSideLength: undefined | number

Private _id

_id: string = idGenerator.getNewId()

For internal usage.

Protected _instanceMaterialType

_instanceMaterialType: InstanceMaterialType = InstanceMaterialType.ADD_COLOR_AND_TEXTURE

Protected _lastParent

_lastParent: Node | null = null

Protected _layerInfo

_layerInfo: TMXLayerInfo | null = null

Protected _layerName

_layerName: string = ""

Protected _layerOrientation

_layerOrientation: null | Orientation = null

Protected Optional _layerSize

_layerSize: Size

Protected _leftDownToCenterX

_leftDownToCenterX: number = 0

Protected _leftDownToCenterY

_leftDownToCenterY: number = 0

Protected _leftOffset

_leftOffset: number = 0

Protected _mapInfo

_mapInfo: TMXMapInfo | null = null

Protected Optional _mapTileSize

_mapTileSize: Size

Protected _materialInstances

_materialInstances: (null | MaterialInstance)[] = []

Protected _materials

_materials: (null | Material)[] = []

Protected Optional _maxGID

_maxGID: GID

Protected _meshRenderDataArray

_meshRenderDataArray: TiledMeshDataArray | null = null

_meshRenderDataArrayIdx

_meshRenderDataArrayIdx: number = 0

Protected Optional _minGID

_minGID: GID

Protected _models

_models: Model[] = []

Protected _name

_name: string

_objFlags

_objFlags: number

Protected Optional _odd_even

_odd_even: undefined | number

Protected Optional _offset

_offset: Vec2

Protected Optional _opacity

_opacity: undefined | number

Protected _postAssembler

_postAssembler: IAssembler | null = null

Protected Optional _properties

_properties: PropertiesInfo

Protected _renderData

_renderData: RenderData | null = null

Protected _renderDataFlag

_renderDataFlag: boolean = true

Protected _renderFlag

_renderFlag: boolean = true

Protected _rightOffset

_rightOffset: number = 0

Private sceneGetter

sceneGetter: null | (() => RenderScene) = null

Protected _srcBlendFactor

_srcBlendFactor: BlendFactor = BlendFactor.SRC_ALPHA

Protected Optional _staggerAxis

_staggerAxis: StaggerAxis

Protected Optional _staggerIndex

_staggerIndex: StaggerIndex

Protected _textures

_textures: SpriteFrame[] = []

Protected _tilesets

_tilesets: TMXTilesetInfo[] = []

Protected Optional _tintColor

_tintColor: Color

Protected _topOffset

_topOffset: number = 0

Protected Optional _useAutomaticVertexZ

_useAutomaticVertexZ: undefined | false | true

Protected _userNodeDirty

_userNodeDirty: boolean = false

Protected userNodeGrid

userNodeGrid: {}

Type declaration

Protected userNodeMap

userNodeMap: {}

Type declaration

Protected Optional _vertexZvalue

_vertexZvalue: undefined | number

Protected _verticesDirty

_verticesDirty: boolean = true

Protected _visFlags

_visFlags: number = Layers.Enum.NONE

colorChanged

colorChanged: boolean = false

node

node: Node = NullNode

该组件被附加到的节点。组件总会附加到一个节点。

example
import { log } from 'cc';
log(comp.node);

Optional renderOrder

renderOrder: RenderOrder

stencilStage

stencilStage: Stage = Stage.DISABLED

组件模板缓冲状态 (注意:请不要直接修改它的值)

texGrids

texGrids: TiledTextureGrids | null = null

tiledTiles

tiledTiles: (null | TiledTile)[] = []

tiles

tiles: MixedGID[] = []

vertices

vertices: { maxCol: number; minCol: number }[] = []

Static Assembler

Assembler: IAssemblerManager | null = null

渲染数据组装器

Static BlendState

BlendState: BlendFactor = BlendFactor

混合模式枚举类型

see

BlendFactor

Static PostAssembler

PostAssembler: IAssemblerManager | null = null

后置渲染数据组装器

Static system

system: null = null

Accessors

scriptAsset

  • get scriptAsset(): null

isOnLoadCalled

  • get isOnLoadCalled(): number

blendHash

  • get blendHash(): number

color

  • get color(): Readonly<Color>
  • set color(value: {}): void

cullingRect

  • get cullingRect(): { leftDown: object; rightTop: object }
  • Returns { leftDown: object; rightTop: object }

    • leftDown: object
      • col: number
      • row: number
    • rightTop: object
      • col: number
      • row: number

customMaterial

  • get customMaterial(): null | Material
  • set customMaterial(val: null | Material): void

delegateSrc

  • set delegateSrc(value: Node): void

dstBlendFactor

enableCulling

  • get enableCulling(): boolean
  • set enableCulling(value: boolean): void

enabled

  • get enabled(): boolean
  • set enabled(value: boolean): void

enabledInHierarchy

  • get enabledInHierarchy(): boolean

isValid

  • get isValid(): boolean
  • 表示该对象是否可用(被 destroy 后将不可用)。
    当一个对象的 destroy 调用以后,会在这一帧结束后才真正销毁。
    因此从下一帧开始 isValid 就会返回 false,而当前帧内 isValid 仍然会是 true。
    如果希望判断当前帧是否调用过 destroy,请使用 isValid(obj, true),不过这往往是特殊的业务需求引起的,通常情况下不需要这样。

    default

    true

    readonly
    example
    import { Node, log } from 'cc';
    const node = new Node();
    log(node.isValid);    // true
    node.destroy();
    log(node.isValid);    // true, still valid in this frame
    // after a frame...
    log(node.isValid);    // false, destroyed in the end of last frame

    Returns boolean

layerSize

  • get layerSize(): Size

leftDownToCenterX

  • get leftDownToCenterX(): number

leftDownToCenterY

  • get leftDownToCenterY(): number

material

materials

meshRenderDataArray

name

  • get name(): string
  • set name(value: string): void

renderData

  • get renderData(): null | RenderData

rightTop

  • get rightTop(): { col: number; row: number }

sharedMaterial

sharedMaterials

  • get sharedMaterials(): (null | Material)[]
  • set sharedMaterials(val: (null | Material)[]): void

srcBlendFactor

uuid

  • get uuid(): string

visibility

  • get visibility(): number
  • set visibility(val: number): void

Methods

preload

  • __preload(): void

Protected addUserNodeToGrid

  • addUserNodeToGrid(dataComp: TiledUserNodeData, tempRowCol: { col: number; row: number }): void

Protected attachToScene

  • _attachToScene(): void

Protected canRender

  • _canRender(): boolean

Protected checkAndUpdateRenderData

  • _checkAndUpdateRenderData(): void

Protected clearMaterials

  • _clearMaterials(): void

collectModels

  • _collectModels(): Model[]

destroyImmediate

  • _destroyImmediate(): void

destruct

  • _destruct(): void
  • Clear all references in the instance.

    NOTE: this method will not clear the getter or setter functions which defined in the instance of CCObject. You can override the _destruct method if you need, for example: _destruct: function () { for (var key in this) { if (this.hasOwnProperty(key)) { switch (typeof this[key]) { case 'string': this[key] = ''; break; case 'object': case 'function': this[key] = null; break; } } }

    Returns void

Protected detachFromScene

  • _detachFromScene(): void

Protected flushAssembler

  • _flushAssembler(): void

Optional Private getLocalBounds

  • getLocalBounds(out_rect: Rect): void
  • 如果组件的包围盒与节点不同,您可以实现该方法以提供自定义的轴向对齐的包围盒(AABB), 以便编辑器的场景视图可以正确地执行点选测试。

    Parameters

    • out_rect: Rect

      The rect to store the result bounding rect

    Returns void

Private getRenderScene

  • _getRenderScene(): RenderScene

instantiate

  • instantiate(cloned: any): any

Protected limitInLayer

  • limitInLayer(rowCol: { col: number; row: number }): void

Protected nodeLocalPosToLayerPos

Protected nodeStateChange

Protected onMaterialModified

  • onMaterialModified(index: number, material: Material | null): void

onPreDestroy

  • _onPreDestroy(): void

Protected onRebuildPSO

  • onRebuildPSO(index: number, material: Material | null): void

Protected onVisibilityChange

  • onVisibilityChange(val: any): void

Protected positionForHexAt

  • positionForHexAt(col: number, row: number): Vec2

Protected positionForIsoAt

  • positionForIsoAt(x: number, y: number): Vec2

Protected positionForOrthoAt

  • positionForOrthoAt(x: number, y: number): Vec2

Protected positionToRowCol

  • positionToRowCol(x: number, y: number, result: { col: number; row: number }): { col: number; row: number }
  • Parameters

    • x: number
    • y: number
    • result: { col: number; row: number }
      • col: number
      • row: number

    Returns { col: number; row: number }

    • col: number
    • row: number

Protected postCanRender

  • _postCanRender(): void

Protected postRender

  • postRender(render: Batcher2D): void

Protected prepareToRender

  • _prepareToRender(): void

Protected removeUserNodeFromGrid

Protected render

  • render(ui: Batcher2D): void

Protected syncAnchorPoint

  • _syncAnchorPoint(): void

Protected updateAllUserNode

  • _updateAllUserNode(): void

updateBlendFunc

  • _updateBlendFunc(): void

Protected updateColor

  • _updateColor(): void

Protected updateCullingOffsetByUserNode

  • updateCullingOffsetByUserNode(node_: Node): void

Protected updateTileForGID

  • updateTileForGID(gidAndFlags: MixedGID, x: number, y: number): void

Protected updateVertex

  • updateVertex(col: number, row: number): void

Protected updateVertices

  • _updateVertices(): void

Protected userNodePosChange

  • _userNodePosChange(): void

Protected userNodeSizeChange

  • _userNodeSizeChange(): void

addComponent

  • addComponent<T>(classConstructor: Constructor<T>): T | null
  • addComponent(className: string): Component | null

addUserNode

  • addUserNode(node: Node): boolean

destroy

  • destroy(): boolean

destroyRenderData

  • destroyRenderData(): void

destroyUserNode

  • destroyUserNode(node: Node): void

getBlendState

getComponent

  • getComponent<T>(classConstructor: Constructor<T>): T | null
  • getComponent(className: string): Component | null
  • 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
    传入参数也可以是脚本的名称。

    example
    // get custom test calss.
    var test = node.getComponent("Test");

    Type parameters

    Parameters

    • classConstructor: Constructor<T>

      The class of component to be retrieved or to be created

    Returns T | null

  • 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
    传入参数也可以是脚本的名称。

    example
    // get custom test calss.
    var test = node.getComponent("Test");

    Parameters

    • className: string

      A string for the class name of the component

    Returns Component | null

getComponentInChildren

  • getComponentInChildren<T>(classConstructor: Constructor<T>): T | null
  • getComponentInChildren(className: string): Component | null

getComponents

  • getComponents<T>(classConstructor: Constructor<T>): T[]
  • getComponents(className: string): Component[]

getComponentsInChildren

  • getComponentsInChildren<T>(classConstructor: Constructor<T>): T[]
  • getComponentsInChildren(className: string): Component[]

getLayerName

  • getLayerName(): string
  • 获取层的名称。

    method

    getLayerName

    example

    let layerName = tiledLayer.getLayerName(); cc.log(layerName);

    Returns string

getLayerOrientation

  • 获取 Layer 方向(同地图方向)。

    method

    getLayerOrientation

    example

    let orientation = tiledLayer.getLayerOrientation(); cc.log("Layer Orientation: " + orientation);

    Returns null | ORTHO | HEX | ISO

getLayerSize

  • getLayerSize(): Size

getMapTileSize

  • getMapTileSize(): Size
  • 获取 tile 的大小( tile 的大小可能会有所不同)。

    method

    getMapTileSize

    example

    let mapTileSize = tiledLayer.getMapTileSize(); cc.log("MapTile size: " + mapTileSize);

    Returns Size

getMaterial

  • getMaterial(idx: number): Material | null

getMaterialInstance

  • getMaterialInstance(idx: number): Material | null

getNodesByRowCol

  • getNodesByRowCol(row: number, col: number): null | { count: number; list: (null | TiledUserNodeData)[] }

getNodesCountByRow

  • getNodesCountByRow(row: any): number

getPositionAt

  • getPositionAt(pos: IVec2Like | number, y?: undefined | number): Vec2 | null
  • 获取指定 tile 的像素坐标。

    method

    getPositionAt

    example

    let pos = tiledLayer.getPositionAt(cc.v2(0, 0)); cc.log("Pos: " + pos); let pos = tiledLayer.getPositionAt(0, 0); cc.log("Pos: " + pos);

    Parameters

    • pos: IVec2Like | number

      position or x

    • Optional y: undefined | number

    Returns Vec2 | null

getProperties

  • getProperties(): undefined | {}
  • 获取 layer 的属性,可以使用 Tiled 编辑器添加属性。

    method

    getProperties

    example

    let properties = tiledLayer.getProperties(); cc.log("Properties: " + properties);

    Returns undefined | {}

getProperty

  • getProperty(propertyName: string): string | number
  • 获取指定属性名的值。

    method

    getProperty

    example

    let property = tiledLayer.getProperty("info"); cc.log(property);

    Parameters

    • propertyName: string

    Returns string | number

getRenderMaterial

  • getRenderMaterial(index: number): Material | null

getTexture

  • getTexture(index?: undefined | number): SpriteFrame | null

getTextures

getTileFlagsAt

  • getTileFlagsAt(x: number, y: number): null | number
  • 通过给定的 tile 坐标, 返回 tile 的 flags.
    如果它返回 null,则表示该 tile 为空。

    method

    getTileGIDAt

    example

    let tileGid = tiledLayer.getTileGIDAt(0, 0);

    Parameters

    • x: number
    • y: number

    Returns null | number

getTileGIDAt

  • getTileGIDAt(x: number, y: number): number | null
  • 通过给定的 tile 坐标、flags(可选)返回 tile 的 GID.
    如果它返回 0,则表示该 tile 为空。

    method

    getTileGIDAt

    example

    let tileGid = tiledLayer.getTileGIDAt(0, 0);

    Parameters

    • x: number
    • y: number

    Returns number | null

getTileSet

getTileSets

getTiledTileAt

  • getTiledTileAt(x: number, y: number, forceCreate?: undefined | false | true): null | TiledTile
  • 通过指定的 tile 坐标获取对应的 TiledTile。
    如果指定的坐标没有 tile,并且设置了 forceCreate 那么将会在指定的坐标创建一个新的 TiledTile 。
    在渲染这个 tile 的时候,将会使用 TiledTile 的节点的旋转、缩放、位移、颜色属性。

    method

    getTiledTileAt

    example

    let tile = tiledLayer.getTiledTileAt(100, 100, true); cc.log(tile);

    Parameters

    • x: number
    • y: number
    • Optional forceCreate: undefined | false | true

    Returns null | TiledTile

hasAnimation

  • hasAnimation(): boolean

hasTiledNode

  • hasTiledNode(): boolean

init

isCullingDirty

  • isCullingDirty(): boolean

isInvalidPosition

  • isInvalidPosition(x: number, y: number): boolean

isUserNodeDirty

  • isUserNodeDirty(): boolean

Protected Optional lateUpdate

  • lateUpdate(dt: number): void
  • 如果该组件启用,则每帧调用 LateUpdate。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Parameters

    • dt: number

      the delta time in seconds it took to complete the last frame

    Returns void

markForUpdateRenderData

  • markForUpdateRenderData(enable?: boolean): void

onDestroy

  • onDestroy(): void

onDisable

  • onDisable(): void

onEnable

  • onEnable(): void

Optional onFocusInEditor

  • onFocusInEditor(): void

Protected Optional onLoad

  • onLoad(): void
  • 当附加到一个激活的节点上或者其节点第一次激活时候调用。onLoad 总是会在任何 start 方法调用前执行,这能用于安排脚本的初始化顺序。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Returns void

Optional onLostFocusInEditor

  • onLostFocusInEditor(): void

onRestore

  • onRestore(): void

postUpdateAssembler

  • postUpdateAssembler(render: Batcher2D): void
  • 后置渲染数据组装程序,它会在所有子节点的渲染数据组装完成后被调用。 它可能会组装额外的渲染数据到顶点数据缓冲区,也可能只是重置一些渲染状态。 注意:不要手动调用该函数,除非你理解整个流程。

    Parameters

    • render: Batcher2D

    Returns void

removeUserNode

  • removeUserNode(node: Node): boolean

requestMeshRenderData

requestRenderData

  • requestRenderData(): RenderData

requestSubNodesData

Optional resetInEditor

  • resetInEditor(): void

schedule

  • schedule(callback: any, interval?: number, repeat?: number, delay?: number): void
  • 调度一个自定义的回调任务。
    如果回调任务已调度,那么将不会重复调度它,只会更新时间间隔参数。

    example
    import { log } from 'cc';
    this.schedule((dt) => void log(`time: ${dt}`), 1);

    Parameters

    • callback: any

      The callback function of the task

    • Default value interval: number = 0

      The time interval between each invocation

    • Default value repeat: number = legacyCC.macro.REPEAT_FOREVER

      The repeat count of this task, the task will be invoked (repeat + 1) times, use macro.REPEAT_FOREVER to repeat a task forever

    • Default value delay: number = 0

      The delay time for the first invocation, Unit: s

    Returns void

scheduleOnce

  • scheduleOnce(callback: any, delay?: number): void
  • 调度一个只运行一次的回调任务,可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。

    method

    scheduleOnce

    see

    schedule

    example
    import { log } from 'cc';
    this.scheduleOnce((dt) => void log(`time: ${dt}`), 2);

    Parameters

    • callback: any

      The callback function of the task

    • Default value delay: number = 0

      The delay time for the first invocation, Unit: s

    Returns void

setCullingDirty

  • setCullingDirty(value: boolean): void

setLayerName

  • setLayerName(layerName: string): void
  • 设置层的名称

    method

    SetLayerName

    example

    tiledLayer.setLayerName("New Layer");

    Parameters

    • layerName: string

    Returns void

setMaterial

  • setMaterial(material: Material | null, index: number): void

setMaterialInstance

  • setMaterialInstance(index: number, matInst: Material | null): void

setTexture

setTextures

setTileGIDAt

  • setTileGIDAt(gid: MixedGID, x: number, y: number, flags?: undefined | number): void
  • 设置给定坐标的 tile 的 gid (gid = tile 全局 id), tile 的 GID 可以使用方法 “tileGIDAt” 来获得。
    如果一个 tile 已经放在那个位置,那么它将被删除。

    method

    setTileGIDAt

    example

    tiledLayer.setTileGIDAt(1001, 10, 10, 1)

    Parameters

    • gid: MixedGID
    • x: number
    • y: number
    • Optional flags: undefined | number

    Returns void

setTileSet

setTileSets

setTiledTileAt

setTilesGIDAt

  • setTilesGIDAt(gids: number[], beginCol: number, beginRow: number, totalCols: number): void
  • 设置给定区域的 tile 的 gid (gid = tile 全局 id),

    method

    setTilesGIDAt

    example

    tiledLayer.setTilesGIDAt([1, 1, 1, 1], 10, 10, 2)

    Parameters

    • gids: number[]

      an array contains gid

    • beginCol: number

      begin col number

    • beginRow: number

      begin row number

    • totalCols: number

      count of column

    Returns void

setUserNodeDirty

  • setUserNodeDirty(value: any): void

Protected Optional start

  • start(): void
  • 如果该组件第一次启用,则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Returns void

unschedule

  • unschedule(callback_fn: any): void

unscheduleAllCallbacks

  • unscheduleAllCallbacks(): void

Protected Optional update

  • update(dt: number): void
  • 如果该组件启用,则每帧调用 update。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Parameters

    • dt: number

      the delta time in seconds it took to complete the last frame

    Returns void

updateAssembler

  • updateAssembler(render: Batcher2D): void
  • 渲染数据组装程序,这个方法会在所有子节点数据组装之前更新并组装当前组件的渲染数据到 UI 的顶点数据缓冲区中。 一般在 UI 渲染流程中调用,用于组装所有的渲染数据到顶点数据缓冲区。 注意:不要手动调用该函数,除非你理解整个流程。

    Parameters

    • render: Batcher2D

    Returns void

updateBlendHash

  • updateBlendHash(): void

updateCulling

  • updateCulling(): void

Protected updateMaterial

  • updateMaterial(): void

updateViewPort

  • updateViewPort(x: number, y: number, width: number, height: number): void

Static deferredDestroy

  • _deferredDestroy(): void

Object literals

Protected cullingRect

cullingRect: object

leftDown

leftDown: object

col

col: number = -1

row

row: number = -1

rightTop

rightTop: object

col

col: number = -1

row

row: number = -1

Protected rightTop

rightTop: object

col

col: number = -1

row

row: number = -1

Protected viewPort

viewPort: object

height

height: number = -1

width

width: number = -1

x

x: number = -1

y

y: number = -1

Generated using TypeDoc