Surface.blit在1.8中有一个新参数:blend.定义了以下值:
BLEND_ADD
BLEND_SUB
BLEND_MULT
BLEND_MIN
BLEND_MAX
BLEND_RGBA_ADD
BLEND_RGBA_SUB
BLEND_RGBA_MULT
BLEND_RGBA_MIN
BLEND_RGBA_MAX
BLEND_RGB_ADD
BLEND_RGB_SUB
BLEND_RGB_MULT
BLEND_RGB_MIN
BLEND_RGB_MAX
有人可以解释这些模式的含义吗?
您可以在这里找到混合操作的来源:surface.h
基本上,ADD添加两个源像素并将结果剪辑为255. SUB将两个像素和剪辑减去0.
MULT
: result = (p1 * p2) / 256
MIN
:选择每个通道的较低值(不是整个像素),因此如果pixel1是(100,10,0)
和pixel2 (0,10,100)
,则得到(0,10,0)
MAX
:MIN(即(100,10,100)
)的对面
还有一个额外的混合模式,从文档中不明显:( 0
或只是将参数保留).此模式将"标记"源表面到目标.如果源表面具有alpha通道,则将确定每个像素的"强"程度(0
=无效果,255
=复制像素,128
:) result = .5*source + .5*destination
.
有用效果:要使某个区域变暗,请使用混合模式0,将源/印章表面填充为黑色并将alpha设置为10
:(0,0,0,10)
.
要减轻它,使用白色(255,255,255,10)
.