您可以简单地设置每像素alpha,假设您有一个函数,该函数对rgb color值采用3元组,并返回所需的rgb a color+alpha的4倍,您可以更改每像素的曲面:
def set_alphas(color):
if color == (255,255,0): # magenta means clear
return (0,0,0,0)
if color == (0,255,255): # cyan means shadow
return (0,0,0,128)
r,g,b = color
return (r,g,b,255) # otherwise use the solid color from the image.
for row in range(myimage.get_height()):
for col in range(myimage,get_width()):
myimage.set_at((row, col), set_alphas(myimage.get_at((row, col))[:3]))
如果你的图片有一个你想让它透明的纯色背景,你可以将它设置为color_key值,而pygame将使它在点击图片时透明。
例如:
我最初的问题可能不太清楚,但我想我自己解决了。我要找的是Surface的set_alpha()方法,所以我要做的就是确保半透明图像位于它们自己的曲面上。
下面是一个简单代码示例:
这是最好的技术吗?这似乎是最简单和直接的。
加载图像后,需要在
Surface
上启用alpha通道。看起来有点像这样:这将加载图像,并立即将其转换为适合于alpha混合到显示表面的像素格式。如果需要以另一种格式blit到另一个屏幕外缓冲区,可以使用其他曲面。
您可以简单地设置每像素alpha,假设您有一个函数,该函数对rgb color值采用3元组,并返回所需的rgb a color+alpha的4倍,您可以更改每像素的曲面:
有其他更有用的方法可以做到这一点,但我希望这能给你一个想法。
相关问题 更多 >
编程相关推荐