Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在pygame中使圆半透明?_Python_Pygame - Fatal编程技术网

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

Python 如何在pygame中使圆半透明?,python,pygame,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

我对
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 = 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(“黑色”)返回完全不透明的颜色。而
(0,0,0,0)
将是完全透明的。如果要设置透明度,请直接定义颜色。这将使绘制函数看起来像:

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

尝试在上使用convert_alpha()surface@gkusner那没用。还有其他建议吗?它奏效了!!!谢谢你的帮助。我不知道在定义颜色时可以指定透明度。