[英]How to draw a semi-transparent circle in Pygame?
我正在嘗試在 Pygame 中繪制一個半透明的圓圈。 這是我的代碼:
import pygame
pygame.init()
clock = pygame.time.Clock()
screen=pygame.display.set_mode((width,height))
while True:
msElapsed = clock.tick(100)
screen.fill((0,0,0,255))
pygame.draw.circle(screen,(30,224,33,100),(250,100),10)
pygame.display.update()
for event in pygame.event.get():
if event.type==pygame.QUIT:
exit()
我想使用 RGBA 作為圓形顏色。 但圓圈是全彩色的。 我的代碼有什么問題?
使固定:
首先,您需要創建一個接受透明度的表面
surface = pygame.Surface((width,height), pygame.SRCALPHA)
然后從這一行:
pygame.draw.circle(screen,(30,224,33,100),(250,100),10)
screen
更改為surface
,使其看起來像:
pygame.draw.circle(surface,(30,224,33,100),(250,100),10)
然后添加:
screen.blit(surface, (0,0))
解釋:
當您在屏幕上繪制圓圈時,它會忽略透明度值,因為 pygame 屏幕無法接受它們。 我所做的是創建一個可以接受透明度的新圖層/屏幕(由於這個參數pygame.SRCALPHA
),然后將該圖層/屏幕粘貼到原始屏幕的頂部。
這個是為我工作的
def draw_transparent_circle(win,x,y,radius,color,alpha_level):
pygame.gfxdraw.filled_circle(win,x,y,radius,(color[0],color[1],color[2],alpha_level))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.