Как сделать поверхность с прозрачным фоном в Pygame - PullRequest
32 голосов
/ 30 ноября 2008

Может ли кто-нибудь дать мне пример кода, который создает поверхность с прозрачным фоном в Pygame?

Ответы [ 2 ]

35 голосов
/ 30 ноября 2008

Это должно сделать это:

image = pygame.Surface([640,480], pygame.SRCALPHA, 32)
image = image.convert_alpha()

Убедитесь, что глубина цвета (32) остается явно установленной, иначе это не будет работать.

14 голосов
/ 09 декабря 2008

Вы также можете назначить ему цветовой ключ, очень похожий на прозрачность файла GIF. Это самый распространенный способ создания спрайтов. Исходное растровое изображение содержит иллюстрацию и имеет определенный цвет в качестве фона, который не будет нарисован, то есть цветовой ключ:

surf.set_colorkey((255,0,255)) // Sets the colorkey to that hideous purple

Поверхности, использующие цветовой ключ вместо альфа-канала, быстрее восстанавливаются, поскольку не требуют смешанной математики. Поверхность SDL использует простую битовую маску, когда у нее есть набор цветовых клавиш, который практически не мигает.

...