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.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("black") 返回完全不透明的颜色。而 (0, 0, 0, 0) 将是完全透明的。如果要设置透明度,直接定义颜色即可。这将使你的绘图函数看起来像:

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

关于python - 如何在pygame中使圆半透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31989468/

相关文章:

python - 使用按键时连续运行的循环[pygame.K_SPACE] Python/Pygame

python - 你如何修复 "Missing module docstringpylint(missing-module-docstring)"

python - 如何用不同的变量y绘制多个对象?

python - 尝试将具有两个序列的嵌套循环转换为 lambda

python - PyQt5:QTableWidget 中复选框的状态更改

python - 有没有办法使用 PyQt 实现循环等待指示器?

python - 当用户在 gtk.TextBuffer 中输入时获取文本

python - PyQt5 不会为 Python 3 安装

python - 如何在按下某个键时显示图片?

python - Pygame如何使用行走动画