我有一个正在开发的电脑游戏,我想给用户一个选项来关闭 alpha 合成以提高速度。Pygame 不是到处进行检查,而是有一个全局选项来表示“不要使用 alpha”,这样它就会忽略我对 set_alpha 等的所有调用?
问问题
556 次
2 回答
1
考虑到 pygame 文档,我会说“不,没有禁用 alpha 的全局方法”。
但是,至少有两种“本地”方法可以做到这一点:
首先是继承 pygame.Surface 并提供您自己的 set_alpha 实现,这反过来可以尊重您的全局 alpha 设置。
第二个有点棘手,因为它取决于使用的像素格式。引用 pygame 文档:
Surface.set_alpha
设置整个表面的 alpha 值
[...]
这个值不同于每个像素的 Surface alpha。如果 Surface 格式包含每像素 alpha,则此 alpha 值将被忽略。如果 Surface 包含每像素 alpha,则将 alpha 值设置为 None 将禁用每像素透明度。
[...]
有了这个,你可以提供两组纹理:
- 一个带有不透明(每像素)alpha 通道的通道,它将覆盖您对set_alpha()的所有调用
- 一个没有每像素 alpha 的,因此会尊重你的set_alpha()
希望这会有所帮助!
于 2009-09-15T20:29:25.547 回答
0
我读过 convert() 函数会禁用图像的 alpha。我所知道的是:
使用 convert() 函数可以将我计算机上的大屏幕图像的图像加速到 150 FPS 左右,颜色深度为 16 位。
image = image.convert()#video system has to be initialed
于 2013-03-22T10:15:10.157 回答