在pygame中将基本RGB转换为alpha

时间:2015-04-24 05:00:18

标签: colors pygame rgb alpha

light_green = (0,200,0,100)
pygame.draw.rect(game_display,light_green,(50,200,60,110))

我知道这在第4节(100)中有alpha属性。但是在背景上应用它时不透明。它只是一个坚固的方块。我希望能够通过广场看到背景。任何帮助总是赞赏。谢谢:)

1 个答案:

答案 0 :(得分:1)

绘图模块的功能不会透明。请参阅documentation for draw

  

大多数参数都接受一个RGB三元组的颜色参数。   这些也可以接受RGBA四联体。 alpha值将是   如果它包含像素alpha,则直接写入Surface,但是   绘制功能不会透明地绘制

解决方法是使用pygame.gfxdraw模块中的相应功能,而不是为box功能添加透明度。

import pygame.gfxdraw
light_green = (0,200,0,100)
pygame.gfxdraw.box(game_display, pygame.Rect(50,200,60,110), light_green)

如果您只想绘制矩形,可以直接填充曲面并将其blit到屏幕。

light_green = (0,200,0,100)
s = pygame.Surface((60, 110), pygame.SRCALPHA)
s.fill(light_green)
game_display.blit(s, (50, 200))