类型 字符串 对象 绘制 库 display.* 修订 版本 2024.3703 关键词 加法混合, 混合模式, 混合, Porter-Duff 另请参阅 绘制 object.fill object.blendMode
允许您更改特定对象的混合模式。
标准混合模式可以通过以下字符串之一指定
"normal"
— 这是标准混合模式。"add"
— 也称为线性减淡。加法混合可用于发光效果。"multiply"
— 乘法混合可用于创建阴影。与白色混合将导致无变化;与其他颜色混合将使合成图像变暗。"screen"
— 这对于在不使最暗区域变亮的情况下使图像变亮很有用。Porter-Duff 混合模式可以通过下面列出的字符串之一指定。
"clear"
"src"
"dst"
"srcOver"
"dstOver"
"srcIn"
"dstIn"
"srcOut"
"dstOut"
"srcAtop"
"dstAtop"
"xor"
自定义混合模式允许您控制如何在混合计算中使用源和目标因子。它们遵循 OpenGL-ES 2 规范 中讨论的混合因子。
您可以通过 Lua 表指定自定义混合模式,该表将源和目标因子指定为
字符串。 默认情况下,与 srcColor
相同。
字符串。 默认情况下,与 dstColor
相同。
"zero"
"one"
"srcColor"
"oneMinusSrcColor"
"dstColor"
"oneMinusDstColor"
"srcAlpha"
"oneMinusSrcAlpha"
"dstAlpha"
"oneMinusDstAlpha"
"srcAlphaSaturate"
某些 Android 设备无法始终如一地将图像加载为预乘 alpha。我们已经应用了变通方法,但它们并非万无一失。在这些设备上,"multiply"
和 "screen"
混合模式将无法正常工作,您应该在控制台中看到一条关于此问题的警告消息。
Porter-Duff 混合模式仅适用于已加载为预乘 alpha 的图像。
local laser = display.newImage( "blendmode_laser.png" ) laser.fill.blendMode = "add"
local laser = display.newImage( "blendmode_laser.png" ) laser.fill.blendMode = "srcAtop"
local laser = display.newImage( "blendmode_laser.png" ) local customBlend = { srcColor = "srcColor", srcAlpha = "oneMinusDstColor", dstColor = "dstAlpha", dstAlpha = "srcAlphaSaturate" } laser.fill.blendMode = customBlend