Layer

.GameObjects. Layer

一个图层游戏对象. 图层是一种特殊类型的游戏对象,用作显示列表.你可以添加任何类型的游戏对象 就像对场景一样.图层可以用来在视觉上把游戏的`layers`组合在一起 对象: ```javascript const spaceman = this.add.sprite(150, 300, 'spaceman'); const bunny = this.add.sprite(400, 300, 'bunny'); const elephant = this.add.sprite(650, 300, 'elephant'); const layer = this.add.layer(); layer.add([ spaceman, bunny, elephant ]); ``` 上面例子中的3个精灵现在将由它们被添加到的图层管理.因此, 如果你设置了 `layer.setVisible(false)` ,它们就会从显示屏上消失. 您还可以控制游戏对象在图层中的深度.例如,调用 一个图层的子图层的方法将允许你调整子图层的深度 层本身_,而不是整个场景.图层也可以设置深度. 图层类还提供了许多不同的方法来操作列表,例如 方法 `moveUp` , `moveDown` , `sendToBack` , `bringToTop` 等等.这些允许您更改 显示层子层的列表位置,使其调整子层的顺序 渲染.在孩子身上使用 `setDepth` 可以覆盖此选项. 图层可以设置后置FX管道,这允许您轻松启用后置管道 一系列的孩子,根据效果,这样做通常会更有效 按每个孩子计算. 图层在场景中没有位置或大小.这意味着您不能为启用图层 物理或输入,或者改变层的位置,旋转或比例.他们也没有卷轴 因素,纹理,色调,来源,裁剪或边界. 如果您需要这些功能,那么您应该使用容器来代替.可以添加容器 到层,但层不能添加到容器. 但是,您可以设置层的Alpha,混合模式,深度,遮罩和可见状态.这些设置 将影响层渲染的所有子对象.

Constructor

new Layer(scene, childrenopt)

Since:
  • 3.50.0
Parameters:
Name Type Attributes Description
scene Phaser.Scene 此游戏对象所属的场景.一个游戏对象一次只能属于一个场景.
children Array.<Phaser.GameObjects.GameObject> <optional>
添加到此层的可选游戏对象数组.

Extends

Members

active :boolean

Since:
  • 3.50.0
Default Value:
  • true
此游戏对象的活动状态. 活动状态为 `true` 的游戏对象由场景更新列表处理(如果添加). 活动对象是指其逻辑和内部系统正在更新的对象.
Type:
  • boolean

alpha :number

Since:
  • 3.0.0
Inherited From:
游戏对象的阿尔法值. 这是一个全局值,影响整个游戏对象,而不仅仅是它的一个区域.
Type:
  • number

blendMode :Phaser.BlendModes|string

Since:
  • 3.0.0
Inherited From:
设置游戏对象使用的混合模式. 这可以是一个常量,如`混合模式`,也可以是一个整数,如4(覆盖) 在网络总帐下,只有以下混合模式可用: * ADD * MULTIPLY * SCREEN * ERASE 根据浏览器的支持,Canvas有更多的可用空间. 您也可以在WebGL中创建自己的自定义混合模式. 混合模式在`画布`和`网络GL`下有不同的效果,不同的浏览器也有不同的效果,具体取决于 依靠支持.如果遇到新的混合模式,混合模式也会导致网络总帐批量刷新.为了这些 原因是要小心场景的构建和混合模式的频率 被使用.
Type:

(nullable) body :Phaser.Physics.Arcade.Body|Phaser.Physics.Arcade.StaticBody|MatterJS.BodyType

Since:
  • 3.51.0
Default Value:
  • null
该属性保持不变,因此图层具有相同的属性 形状像游戏物体.你不能给一个层一个物理实体.
Type:

cameraFilter :number

Since:
  • 3.50.0
Default Value:
  • 0
控制此游戏对象是否由摄像机绘制的位掩码. 通常不直接设置,而是调用 `Camera.ignore` ,不过你可以 直接使用Camera.id属性设置该属性:
Type:
  • number
Example
this.cameraFilter |= camera.id.

data :Phaser.Data.DataManager

Since:
  • 3.50.0
Default Value:
  • null
数据管理器. 它允许您存储,查询和获取特定于此游戏对象的密钥/值配对信息. 默认情况下为 `null` .如果使用 `getData` 或 `setData` 或 `setDataEnabled` ,则自动创建.
Type:

defaultPipeline :Phaser.Renderer.WebGL.WebGLPipeline

Since:
  • 3.0.0
Inherited From:
Default Value:
  • null
这个游戏对象的初始网络游戏管道. 如果您在此游戏对象上调用 `resetPipeline` ,管道将被重置为默认值.
Type:

depth :number

Since:
  • 3.0.0
Inherited From:
场景中游戏对象的深度. 深度在某些环境中也称为 `z-index` ,允许您更改渲染顺序 游戏对象,而不实际移动它们在显示列表中的位置. 默认深度为零.深度更高的游戏对象 值总是呈现在具有较低值的值之前. 设置深度将在场景中排队深度排序事件.
Type:
  • number

displayList :Phaser.GameObjects.DisplayList|Phaser.GameObjects.Layer

Since:
  • 3.50.0
Default Value:
  • null
保存对包含此游戏对象的显示列表的引用. 当这个游戏对象被添加到一个场景或层时,它会被自动设置. 您应该将此属性视为只读.
Type:

events :Phaser.Events.EventEmitter

Since:
  • 3.50.0
场景事件发射器的参考.
Type:

hasPostPipeline :boolean

Since:
  • 3.50.0
Inherited From:
这个游戏对象有设置后期管道吗?
Type:
  • boolean

ignoreDestroy :boolean

Since:
  • 3.50.0
Default Value:
  • false
如果此标志设置为 `true` ,此游戏对象将忽略对其销毁方法的所有调用. 这包括可能来自组,容器或场景本身的调用. 虽然它允许你跨场景的持续游戏对象,请理解你是完全 负责管理对此游戏对象的引用.
Type:
  • boolean

(nullable) input :Phaser.Types.Input.InteractiveObject

Since:
  • 3.51.0
Default Value:
  • null
该属性保持不变,因此图层具有相同的属性 形状像游戏物体.您不能输入启用图层.
Type:

mask :Phaser.Display.Masks.BitmapMask|Phaser.Display.Masks.GeometryMask

Since:
  • 3.0.0
Inherited From:
此游戏对象在渲染过程中使用的遮罩.
Type:

name :string

Since:
  • 3.50.0
Default Value:
  • ''
此游戏对象的名称. 默认情况下是空的,Phaser从不填充,这留给开发人员使用.
Type:
  • string

parentContainer :Phaser.GameObjects.Container

Since:
  • 3.51.0
层不能放在容器内. 该属性保持不变,因此图层具有相同的属性 形状像游戏物体.
Type:

pipeline :Phaser.Renderer.WebGL.WebGLPipeline

Since:
  • 3.0.0
Inherited From:
Default Value:
  • null
此游戏对象的当前网络总帐管道.
Type:

pipelineData :object

Since:
  • 3.50.0
Inherited From:
存储管道特定数据的对象,由该游戏对象使用的管道读取.
Type:
  • object

postPipeline :Array.<Phaser.Renderer.WebGL.Pipelines.PostFXPipeline>

Since:
  • 3.50.0
Inherited From:
这个游戏对象用于后期渲染效果. 管道按照它们在此数组中出现的顺序进行处理. 如果直接修改此数组,请确保将 相应地设置 `hasPostPipeline` 属性.
Type:

renderFlags :number

Since:
  • 3.50.0
Default Value:
  • 15
与 `RENDER_MASK` 进行比较以确定此游戏对象是否会渲染的标志. 位为0001 | 0010 | 0100 | 1000,分别由组件可见,阿尔法,变换和纹理设置. 如果您的自定义类没有使用这些组件,那么您可以根据需要使用这个位掩码.
Type:
  • number

scene :Phaser.Scene

Since:
  • 3.50.0
对该游戏对象所属场景的引用. 游戏对象只能属于一个场景. 您应该将此属性视为只读.您不能移动 通过简单地改变游戏对象到另一个场景.
Type:

sortChildrenFlag :boolean

Since:
  • 3.50.0
Default Value:
  • false
该标志决定了在调用 `DeptSort()` 时是否应该对游戏对象进行排序.
Type:
  • boolean

state :number|string

Since:
  • 3.50.0
此游戏对象的当前状态. 相位器本身永远不会修改这个值,尽管插件可以这样做. 使用此属性跟踪游戏对象在其生命周期内的状态.例如,它可以从 `moving` ,到 `attacking` ,到`dead`的状态.状态值应该是一个整数(理想情况下映射到一个常数 在你的游戏代码中),或者字符串.这些建议是为了保持它的轻便和简单,快速比较. 如果您需要存储关于游戏对象的复杂数据,可以考虑使用数据组件.
Type:
  • number | string

systems :Phaser.Scenes.Systems

Since:
  • 3.50.0
场景系统参考.
Type:

tabIndex :number

Since:
  • 3.51.0
Default Value:
  • -1
游戏对象的标签索引. 保留供插件和输入管理器将来使用.
Type:
  • number

type :string

Since:
  • 3.50.0
该游戏对象的文本表示,即. `sprite` . 由Phaser内部使用,但可用于您自己的自定义类来填充.
Type:
  • string

visible :boolean

Since:
  • 3.0.0
Inherited From:
游戏对象的可见状态. 一个不可见的游戏对象将跳过渲染,但仍将处理更新逻辑.
Type:
  • boolean

Methods

addedToScene()

Since:
  • 3.50.0
当这个游戏对象被添加到场景中时,这个回调被调用. 可以被自定义游戏对象覆盖,但是要注意一些 将使用这个,例如精灵,将自己添加到更新列表中. 您还可以从这个游戏对象中收听`ADDED_TO_SCENE`事件.

clearAlpha() → {this}

Since:
  • 3.0.0
Inherited From:
清除与此游戏对象相关的所有alpha值. 立即将alpha级别设置回1(完全不透明).
Returns:
此游戏对象实例.
Type
this

clearMask(destroyMaskopt) → {this}

Since:
  • 3.6.2
Inherited From:
清除此游戏对象使用的掩码.
Parameters:
Name Type Attributes Default Description
destroyMask boolean <optional>
false 先破坏面具再清除?
Returns:
此游戏对象实例.
Type
this

createBitmapMask(renderableopt) → {Phaser.Display.Masks.BitmapMask}

Since:
  • 3.6.2
Inherited From:
创建并返回位图蒙版.这个遮罩可以被任何游戏对象使用, 包括这个. 注意:位图蒙版仅适用于WebGL.几何蒙版既适用于网络几何图形,也适用于画布. 要创建遮罩,您需要传入一个可渲染游戏对象的引用. 可渲染游戏对象是使用纹理进行渲染的对象,例如 图像,精灵,渲染纹理或位图文本. 如果你没有提供一个可渲染的对象,并且这个游戏对象有纹理, 它会把自己当成物体.这意味着您可以调用此方法来创建 任何可渲染游戏对象的位图蒙版.
Parameters:
Name Type Attributes Description
renderable Phaser.GameObjects.GameObject <optional>
使用纹理的可渲染游戏对象,如精灵.
Returns:
创建的位图掩码.
Type
Phaser.Display.Masks.BitmapMask

createGeometryMask(graphicsopt) → {Phaser.Display.Masks.GeometryMask}

Since:
  • 3.6.2
Inherited From:
创建并返回几何遮罩.这个遮罩可以被任何游戏对象使用, 包括这个. 要创建蒙版,你需要传入一个图形游戏对象的引用. 如果你没有提供图形对象,而这个游戏对象是一个实例 一个图形对象,然后它将使用自己来创建遮罩. 这意味着你可以调用这个方法从任何图形游戏对象创建一个几何图形遮罩.
Parameters:
Name Type Attributes Description
graphics Phaser.GameObjects.Graphics <optional>
图形游戏对象.其中的几何图形将用作遮罩.
Returns:
创建的几何遮罩.
Type
Phaser.Display.Masks.GeometryMask

depthSort()

Since:
  • 3.50.0
如果设置了标志,则立即对显示列表进行排序.

destroy()

Since:
  • 3.50.0
销毁此图层,将其从显示列表和更新列表中删除,并 切断与父资源的所有联系. 也会破坏该层的所有子层.如果你不希望 孩子要被消灭,你应该先把他们从这一层移走. 如果你不打算再使用这个图层,就用它把它从你的游戏中移除. 只要您自己的代码中不存在对它的引用,它就应该是免费的 浏览器垃圾收集. 如果您只想暂时禁用一个对象,那么可以考虑使用 游戏对象池,而不是摧毁它,因为被摧毁的对象不能复活.
Fires:

disableInteractive() → {this}

Since:
  • 3.51.0
不能为输入启用图层. 这种方法什么也不做,只是为了确保 该层具有与游戏物体相同的形状.
Returns:
这个GameObject.
Type
this

getChildren() → {Array.<Phaser.GameObjects.GameObject>}

Since:
  • 3.50.0
返回一个包含该层中所有游戏对象的数组. 这是对主列表数组的引用,不是它的副本,所以注意不要修改它.
Returns:
小组成员.
Type
Array.<Phaser.GameObjects.GameObject>

getData(key) → {*}

Since:
  • 3.50.0
在此游戏对象数据管理器中检索给定键的值,如果不存在,则为未定义. 您也可以通过 `values` 对象访问值.例如,如果您有一把名为 `gold` 的钥匙,您可以选择: ```javascript sprite.getData('gold'); ``` 或者直接访问该值: ```javascript sprite.data.values.gold; ``` 您还可以传入一个键数组,在这种情况下,将返回一个值数组: ```javascript sprite.getData([ 'gold', 'armor', 'health' ]); ``` 这种方法对于在ES6中析构数组很有用.
Parameters:
Name Type Description
key string | Array.<string> 要检索的值的键或键数组.
Returns:
属于给定键或值数组的值,其顺序将与输入数组匹配.
Type
*

getIndexList() → {Array.<number>}

Since:
  • 3.51.0
返回一个数组,该数组包含此游戏对象的显示列表索引,如果有, 它的父容器.然后,它遍历所有父容器,直到遇到 显示列表的根(在返回的数组中是索引0). 由InputPlugin内部使用,但如果您希望了解的显示深度,也很有用 这个游戏物体和它的所有祖先.
Returns:
显示列表位置索引的数组.
Type
Array.<number>

getPipelineName() → {string}

Since:
  • 3.0.0