gpt4 book ai didi

python - 我如何在pygame中制作一个半透明的圆圈?

转载 作者:太空宇宙 更新时间:2023-11-04 01:57:45 33 4
gpt4 key购买 nike

我想制作一个部分透明的圆圈作为效果指示器的区域,但我还没有找到在 pygame 中执行此操作的任何方法。

我尝试传入一个 rgba 4 元组作为参数(如 this post 所建议),但它根本没有改变透明度。最重要的是,根据 this other post ,该方法根本不起作用,因为 draw 不接受 alpha 值。这是相互矛盾的信息。

pygame.draw.circle(screen, (255, 0, 0, 100), (x, y), r)

我还尝试创建一个新表面,在该表面上绘制圆圈,然后将新表面 blit 到我的游戏屏幕上(如 this post 所建议)。它按要求给了我一个半透明的圆圈,但由于 pygame 中的表面是矩形的,它还在圆圈周围给了我一个灰色的矩形,这是我不想要的。

s = pygame.Surface((1000, 1000))
s.set_alpha(100)
pygame.draw.circle(s, (255, 0, 0), (x, y), r)
screen.blit(s, (0, 0))

有没有什么办法可以让这个圆圈变成半透明的,而无需在我的屏幕上添加任何其他可见效果?

最佳答案

这是您链接到标题为 How to draw a semi-transparent circle in Pygame? 的最后一个问题的答案的可运行版本。 .据我所知,它似乎可以满足您的要求。

import pygame

width, height = 640, 480

pygame.init()
clock = pygame.time.Clock()
screen = pygame.display.set_mode((width,height))
surface = pygame.display.set_mode((width,height), pygame.SRCALPHA)

while True:
msElapsed = clock.tick(100)
screen.fill((255,255,255))
pygame.draw.circle(surface,(30,224,33,100),(250,100),10)
screen.blit(surface, (0,0))
pygame.display.update()

for event in pygame.event.get():
if event.type==pygame.QUIT:
exit()

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

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com