如何在pygame中使圆形半透明?

时间:2015-08-13 13:20:32

标签: python pygame

我对pygame有点新鲜,并试图找出如何使圆形半透明。然而,诀窍是圆圈的背景也必须是透明的。这是我正在谈论的代码:

size = 10
surface = pygame.Surface(size, size), pygame.SRCALPHA, 32)
pygame.draw.circle(
    surface, 
    pygame.Color("black"),
    (int(size/2), int(size/2)),
    int(size/2), 2)

我尝试使用surface.set_alpha(127),但这不起作用。我假设因为surface已经透明了。

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

一些事情。首先,您的表面定义应该崩溃,因为它缺少一个括号。它应该是:

surface = pygame.Surface((size, size), pygame.SRCALPHA, 32)

我假设你的代码后面的某个地方有以下内容:

mainWindow.blit(surface, (x, y))
pygame.display.update() #or flip

这是你真正的问题:

>>> import pygame
>>> print pygame.Color("black")
(0, 0, 0, 255)

注意最后255。这意味着pygame.Color(“black”)返回完全不透明的颜色。而(0, 0, 0, 0)将是完全透明的。如果要设置透明度,请直接定义颜色。这会让你的绘图功能看起来像:

pygame.draw.circle(
    surface, 
    (0, 0, 0, transparency), 
    (int(size/2), int(size/2)),
    int(size/2), 2)