Как сделать поверхность с прозрачным фоном в pygame

StackOverflow https://stackoverflow.com/questions/328061

  •  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 использует простую битовую маску, когда у нее установлен цветовой ключ, который практически не мигает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top