Функции модуля draw не прозрачны. См. documentation for draw
Большинство аргументов принимают аргумент цвета, который представляет собой триплет RGB. Они также могут принимать квадруплет RGBA. Значение альфа будет , записанное непосредственно в Поверхность, если оно содержит пиксельные альфы, , но функция рисования не будет рисовать прозрачно.
Обойти это можно использовать соответствующие функции из модуля 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)
Если вы хотите только нарисовать прямоугольники, вы можете как альтернативный способ непосредственно заполнить поверхность и нанести ее на экран.
light_green = (0,200,0,100)
s = pygame.Surface((60, 110), pygame.SRCALPHA)
s.fill(light_green)
game_display.blit(s, (50, 200))
:) Вы, рок, спасибо – pewpew