LightsPlugin

.GameObjects. LightsPlugin

一个场景插件,提供一个Phaser.GameObjects.LightsManager. 可从场景内通过 `this.lights` 获得. 使用Phaser.GameObjects.LightsManager#addLight.方法: ```javascript // Enable the Lights Manager because it is disabled by default this.lights.enable(); // Create a Light at [400, 300] with a radius of 200 this.lights.addLight(400, 300, 200); ``` 对于渲染时受灯光影响的游戏对象,您需要将它们设置为使用 `Light2D` 管道,如下所示: ```javascript sprite.setPipeline('Light2D'); ``` 请注意,您不能在图形游戏对象或形状游戏对象上使用此管道.

Constructor

new LightsPlugin(scene)

Since:
  • 3.0.0
Parameters:
Name Type Description
scene Phaser.Scene 这个灯光插件所属的场景.

Extends

Members

active :boolean

Since:
  • 3.0.0
Inherited From:
Default Value:
  • false
灯光管理器是否已启用.
Type:
  • boolean

ambientColor :Phaser.Display.RGB

Since:
  • 3.50.0
Inherited From:
环境颜色.
Type:

lights :Array.<Phaser.GameObjects.Light>

Since:
  • 3.0.0
Inherited From:
Default Value:
  • []
场景中的光.
Type:

(readonly) maxLights :number

Since:
  • 3.15.0
Inherited From:
单个相机和灯光着色器可以处理的最大灯光数. 通过游戏配置中的 `maxLights` 属性更改此设置,因为它在运行时无法更改.
Type:
  • number

scene :Phaser.Scene

Since:
  • 3.0.0
这个灯光插件所属场景的引用.
Type:

systems :Phaser.Scenes.Systems

Since:
  • 3.0.0
场景系统的参考.
Type:

(readonly) visibleLights :number

Since:
  • 3.50.0
Inherited From:
LightPipeline在_previous_frame中处理的灯光数.
Type:
  • number

Methods

addLight(xopt, yopt, radiusopt, rgbopt, intensityopt) → {Phaser.GameObjects.Light}

Since:
  • 3.0.0
Inherited From:
添加一盏灯.
Parameters:
Name Type Attributes Default Description
x number <optional>
0 灯的水平位置.
y number <optional>
0 灯的垂直位置.
radius number <optional>
128 光的半径.
rgb number <optional>
0xffffff 灯光的整数RGB颜色.
intensity number <optional>
1 光的强度.
Returns:
添加的光.
Type
Phaser.GameObjects.Light

addPointLight(x, y, coloropt, radiusopt, intensityopt, attenuationopt) → {Phaser.GameObjects.PointLight}

Since:
  • 3.50.0
Inherited From:
创建一个新的点光源游戏对象,并将其添加到场景中. 注意:这个方法只有在点光游戏物体已经被置入相位器的情况下才有效. 点光游戏对象提供了一种在游戏中添加点光效果的方法, 没有传统光游戏对象的昂贵的着色器处理要求. 不同的是,点光源渲染使用自定义着色器,旨在给 在你的游戏中,一个可变半径,亮度和颜色的点光源的印象. 然而,不像轻游戏对象,它不影响任何其他游戏对象,或使用他们的 用于计算的法线贴图.与灯光相比,这使得渲染速度非常快 非常适合特殊效果,例如闪烁的手电筒或枪口闪光. 为了获得最大的性能,你应该将点光游戏对象一起批处理.这意味着 确保它们在显示列表中连续出现.理想情况下,使用图层 游戏对象,然后只添加点光源到它,这样它就可以一起批量渲染 灯光.你不必这么做,如果你只有几个点光源 你的游戏,然后它是完全安全的混合到正常的播放列表.然而,如果 您正在使用大量的它们,请考虑如何将它们混合到显示列表中. 渲染器将自动剔除点光源.半径不相交的 在渲染列表中将跳过摄像机.这是自动发生的 每一帧,每一台摄像机都会刷新剔除状态. 点光源的原点始终为0.5,不能更改. 点光源是一个网络图形用户界面独有的功能,没有相应的画布.
Parameters:
Name Type Attributes Default Description
x number 这个点光在世界上的水平位置.
y number 这个点光在世界上的垂直位置.
color number <optional>
0xffffff 点光源的颜色,以十六进制值给出.
radius number <optional>
128 点光源的半径.
intensity number <optional>
1 点光源的强度或颜色混合.
attenuation number <optional>
0.1 点光源的衰减.这是光从中心点的减少.
Returns:
创建的游戏对象.
Type
Phaser.GameObjects.PointLight

boot()

Since:
  • 3.0.0
启动灯光插件.

destroy()

Since:
  • 3.0.0
Overrides:
摧毁灯光插件. 清除所有引用.

disable() → {this}

Since:
  • 3.0.0
Inherited From:
禁用灯光管理器.
Returns:
此灯光管理器实例.
Type
this

enable() → {this}

Since:
  • 3.0.0
Inherited From:
启用灯光管理器.
Returns:
此灯光管理器实例.
Type
this

getLightCount() → {number}

Since:
  • 3.0.0
Inherited From:
获取此灯光管理器管理的灯光数量.
Returns:
此灯光管理器管理的灯光数量.
Type
number

getLights(camera) → {Array.<Phaser.GameObjects.Light>}

Since:
  • 3.50.0
Inherited From:
获取给定摄像机可以看到的所有灯光. 它会自动剔除摄像机世界视图之外的光线. 如果返回的灯光多于管道支持的灯光,则这些灯光将被剔除 基于距摄像机中心的距离.只渲染那些最接近的.
Parameters:
Name Type Description
camera Phaser.Cameras.Scene2D.Camera 为其挑选灯光的摄像机.
Returns:
精选的灯光.
Type
Array.<Phaser.GameObjects.Light>

getMaxVisibleLights() → {number}

Since:
  • 3.0.0
Inherited From:
返回允许一次出现的最大灯光数.
Returns:
一次允许出现的最大灯光数.
Type
number

removeLight(light) → {this}

Since:
  • 3.0.0
Inherited From:
移开一盏灯.
Parameters:
Name Type Description
light Phaser.GameObjects.Light 要移除的光.
Returns:
此灯光管理器实例.
Type
this

setAmbientColor(rgb) → {this}

Since:
  • 3.0.0
Inherited From:
设置环境光颜色.
Parameters:
Name Type Description
rgb number 环境光的整数RGB颜色.
Returns:
此灯光管理器实例.
Type
this

shutdown()

Since:
  • 3.0.0
Inherited From:
关闭灯光管理器. 将所有活动灯光回收到灯光池中,重置环境光颜色,并清除灯光列表和 破碎的灯光.