Как сделать поверхность с прозрачным фоном в pygame
-
11-07-2019 - |
Вопрос
Может ли кто-нибудь дать мне пример кода, который создает поверхность с прозрачным фоном в pygame?
Решение
Это должно сделать это:
image = pygame.Surface([640,480], pygame.SRCALPHA, 32)
image = image.convert_alpha()
Убедитесь, что глубина цвета (32) остается явно заданной, иначе это не сработает.
Другие советы
Вы также можете назначить ему цветовой ключ, очень похожий на прозрачность файла GIF. Это самый распространенный способ создания спрайтов. Исходное растровое изображение имеет обложку и имеет определенный цвет в качестве фона, который не будет нарисован, то есть цветовой ключ:
surf.set_colorkey((255,0,255)) // Sets the colorkey to that hideous purple
Поверхности, использующие цветовой ключ вместо альфа-канала, быстрее справляются, так как не требуют смешанной математики. Поверхность SDL использует простую битовую маску, когда у нее установлен цветовой ключ, который практически не мигает.