Да, вы можете.Документация класса Surface объясняет, как это сделать.Это сводится только к двум случаям: либо вы устанавливаете флаг во время создания объекта Surface:
s = pygame.Surface((16, 16), flags=pygame.SRCALPHA)
, либо вы отдаете альфа-канал поверхности, у которой его еще нет:
s = pygame.image.load('spam.png')
s.convert_alpha()
В документации модуля pygame.image говорится, что применение convert_alpha необходимо для PNG с прозрачностью.
Если вы хотите, вы можете изменить альфа-значение каждого пикселя с помощью модулей draw и surfarray.При указании цвета используйте кортеж из четырех целых чисел: (красный, зеленый, синий, альфа).Параметр альфа варьируется от 0 (полностью прозрачный) до 255 (полностью непрозрачный).
import pygame
pygame.init()
screen = pygame.display.set_mode((320, 200))
screen.fill((200, 100, 200))
s = pygame.Surface((64, 64), flags=pygame.SRCALPHA)
for i in range(64):
pygame.draw.line(s, (0, 0, 0, i*4), (0, i), (64, i))
screen.blit(s, (50, 30))
pygame.display.flip()