我试图在pygame中绘制简单的半透明矩形。我试过这段代码:
import pygame, sys,pygame.mixer
pygame.init()
size = (width, height) = (400, 400)
screen = pygame.display.set_mode(size)
screen.fill((255,255,255))
pygame.draw.rect(screen, (23, 100, 255, 50), (100,100,100,100),0)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
running = False
但正如您所看到的,矩形不是半透明的。这就像我插入了颜色23,100,255,255)而不是(23,100,255,50)。
谢谢!
答案 0 :(得分:5)
你也可以使用gfxdraw,它有几个选项并且接受alpha颜色。
您需要导入:
import pygame.gfxdraw
并使用:
pygame.gfxdraw.box(screen, pygame.Rect(0,0,200,200), (100,0,0,127))
答案 1 :(得分:4)
pygame.draw.rect
文档未声明对Alpha通道的支持。
您应该创建一个RGBA曲面并用半透明颜色填充它:
rect = pygame.Surface((100,100), pygame.SRCALPHA, 32)
rect.fill((23, 100, 255, 50))
screen.blit(rect, (100,100))
答案 2 :(得分:-1)
我问了一个类似于here的问题。我最终做的是在将其转换为alpha图像后使用set_alpha()
函数。您可以在我的问题中找到有用的东西。此外,请确保您没有在半透明的矩形后面显示100%不透明度的旧版本矩形。