BitmapMask

.Display.Masks. BitmapMask

位图蒙版将蒙版像素的alpha(不透明度)与另一个像素的alpha相结合. 与几何蒙版(裁剪路径)不同,位图蒙版的行为类似于阿尔法蒙版, 不是剪辑路径.它仅在使用WebGL渲染器时可用. 位图蒙版可以使用任何游戏对象来确定蒙版游戏对象的每个像素的alpha. 对于被遮罩的游戏对象纹理的任何给定点,像素的阿尔法将乘以阿尔法 位图蒙版的游戏对象中相同位置的像素.中像素的颜色 位图蒙版无所谓. 例如,如果alpha为0.95的纯蓝色像素被带有 阿尔法值为0.5,生成的像素将是纯蓝色,阿尔法值为0.475.自然,这意味着 阿尔法值为0的蒙版中的像素将隐藏所有蒙版游戏对象中的对应像素 蒙版游戏对象中阿尔法值为1的像素将获得与 遮罩中的对应像素. 注意:不能在同一个游戏对象上组合位图蒙版和混合模式.但是,你可以, 将几何遮罩和混合模式结合在一起. 位图蒙版的位置与其游戏对象的位置相匹配,而不是 被遮蔽的物体.移动或变换基础游戏对象会改变蒙版 (并影响任何遮罩对象的可见性),而移动或变换遮罩对象 不会影响面罩. 位图蒙版不会自己渲染它的游戏对象.如果游戏对象不在 场景的显示列表,它将只用于蒙版,它的全部纹理不会直接 可见.将底层游戏对象添加到场景中不会引起任何问题——会的 渲染为一个普通的游戏对象,也将作为一个面具.

Constructor

new BitmapMask(scene, renderable)

Since:
  • 3.0.0
Parameters:
Name Type Description
scene Phaser.Scene 将在其中使用该位图蒙版的场景.
renderable Phaser.GameObjects.GameObject 使用纹理的可渲染游戏对象,如精灵.

Members

bitmapMask :Phaser.GameObjects.GameObject

Since:
  • 3.0.0
使用纹理的可渲染游戏对象,如精灵.
Type:

dirty :boolean

Since:
  • 3.0.0
Default Value:
  • true
位图掩码是否脏,是否需要更新.
Type:
  • boolean

invertAlpha :boolean

Since:
  • 3.1.2
是否反转蒙版alpha. 如果 `true` ,蒙版像素的alpha在与蒙版像素相乘之前将被反转. 本质上,这意味着只有当遮罩中的相应区域不可见时,遮罩区域才可见.
Type:
  • boolean

(readonly) isStencil :boolean

Since:
  • 3.17.0
这个面具是蜡纸面具吗?
Type:
  • boolean

mainFramebuffer :WebGLFramebuffer

Since:
  • 3.0.0
渲染屏蔽游戏对象的帧缓冲区.
Type:
  • WebGLFramebuffer

mainTexture :WebGLTexture

Since:
  • 3.0.0
Default Value:
  • null
用于主帧缓冲区的纹理.
Type:
  • WebGLTexture

maskFramebuffer :WebGLFramebuffer

Since:
  • 3.0.0
位图蒙版的蒙版游戏对象渲染到的帧缓冲区.
Type:
  • WebGLFramebuffer

maskTexture :WebGLTexture

Since:
  • 3.0.0
Default Value:
  • null
用于遮罩帧缓冲区的纹理.
Type:
  • WebGLTexture

renderer :Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer

Since:
  • 3.11.0
对此遮罩使用的画布或网络图形渲染器的引用.
Type:

Methods

clearMask()

Since:
  • 3.50.0
删除 `mainTexture` 和 `maskTextRe` WebGL纹理并删除 `mainFramebuffer` 和 `maskFramebuffer` 也是,会使所有引用无效. 当这个面具被破坏时,或者当你试图创造一个新的面具时,就叫这个 当一个对象已经设置时,屏蔽该对象.

createMask()

Since:
  • 3.50.0
创建为此所需的WebGL纹理2D对象和帧缓冲区 面具.如果已经创建了该掩码,则首先调用 `clearMask` .

destroy()

Since:
  • 3.7.0
销毁此位图掩码并清空它包含的所有引用. 请注意,如果一个游戏对象当前正在使用这个遮罩,它将不会自动检测到你已经破坏了它, 因此,在销毁游戏对象之前,一定要在任何使用它的游戏对象上调用 `clearMask` .

postRenderCanvas(renderer)

Since:
  • 3.0.0
这是一个NOOP方法.画布渲染器不支持位图蒙版.
Parameters:
Name Type Description
renderer Phaser.Renderer.Canvas.CanvasRenderer | Phaser.Renderer.WebGL.WebGLRenderer 要渲染到的画布渲染器.

postRenderWebGL(renderer)

Since:
  • 3.0.0
最终渲染一个屏蔽的游戏对象. 这将重置以前绑定的帧缓冲区,并将WebGL渲染器切换到位图遮罩管道,该管道使用特殊的片段着色器来应用遮罩效果.
Parameters:
Name Type Description
renderer Phaser.Renderer.Canvas.CanvasRenderer | Phaser.Renderer.WebGL.WebGLRenderer 要清理的WebGL渲染器.

preRenderCanvas(renderer, mask, camera)

Since:
  • 3.0.0
这是一个NOOP方法.画布渲染器不支持位图蒙版.
Parameters:
Name Type Description
renderer Phaser.Renderer.Canvas.CanvasRenderer | Phaser.Renderer.WebGL.WebGLRenderer 要渲染到的画布渲染器.
mask Phaser.GameObjects.GameObject 要渲染的屏蔽游戏对象.
camera Phaser.Cameras.Scene2D.Camera 要渲染到的摄像机.

preRenderWebGL(renderer, maskedObject, camera)

Since:
  • 3.0.0
准备网络游戏渲染器来渲染应用了此遮罩的游戏对象. 这将掩蔽游戏对象渲染到掩蔽帧缓冲区,并切换到主帧缓冲区,以便将掩蔽的游戏对象渲染到它,而不是直接渲染到帧.
Parameters:
Name Type Description
renderer Phaser.Renderer.Canvas.CanvasRenderer | Phaser.Renderer.WebGL.WebGLRenderer 要准备的WebGL渲染器.
maskedObject Phaser.GameObjects.GameObject 将要绘制的掩蔽游戏对象.
camera Phaser.Cameras.Scene2D.Camera 要渲染到的摄像机.

setBitmap(renderable)

Since:
  • 3.0.0
为位图蒙版设置新的蒙版游戏对象.
Parameters:
Name Type Description
renderable Phaser.GameObjects.GameObject 使用纹理的可渲染游戏对象,如精灵.