我正在进行一项计算机游戏,我想让用户选择关闭alpha合成以达到速度目的。 Pygame没有在任何地方进行检查,而是有一个全局选项来说“不要使用alpha”,这样它就会忽略我对set_alpha和所有人的所有调用?
答案 0 :(得分:1)
考虑到pygame文档,我会说“不,没有全局方法来禁用alpha”。
但是至少有两种'local'方法可以做到这一点:
首先是子类pygame.Surface并提供自己的set_alpha实现 这反过来可以尊重您的全球alpha设置。
第二个有点棘手,因为它取决于使用的像素格式。 引用pygame文档:
<强> Surface.set_alpha 强>
设置整个表面的alpha值
[...]
此值与每像素Surface alpha不同。如果Surface格式包含 每个像素alphas,那么这个alpha值将被忽略。如果Surface包含每个像素 alphas,将alpha值设置为None将禁用每像素透明度 [...]
有了这个,你可以提供两组纹理:
希望这会有所帮助!
答案 1 :(得分:0)
我已经读过convert() - 函数会禁用图像的alpha。 我所知道的是:
使用convert() - 函数可以加速将计算机上屏幕大图像的图像blitting到150 FPS左右,颜色深度为16位。
image = image.convert()#video system has to be initialed