Есть ли способ получить полупрозрачный круг с полностью прозрачным фоном и полностью непрозрачной рамкой посередине? - PullRequest
0 голосов
/ 07 апреля 2019

Мне нужно иметь «башню», представленную черным прямоугольником, которая полностью непрозрачна.Мне также нужно иметь круг, представляющий диапазон, в котором он может снимать, полупрозрачный.Все это должно быть поверхностью Pygame.Surface с полностью прозрачным фоном.Я, очевидно, использую это в классе, если это нужно уточнить.Я знаю, как получить полупрозрачную поверхность, но не могу получить прозрачный фон, вместо этого это просто черный ящик.

1 Ответ

1 голос
/ 08 апреля 2019

Вы должны создать поверхность и преобразовать ее в поверхность с альфа-каналом.

 surface = surface.convert_alpha()

В следующий раз вы должны заполнить ее цветом, который имеет alpha=0 в [R,G,B,Alpha]

 surface.fill([0,0,0,0]) 

И у вас есть пустая поверхность с прозрачным фоном.

Теперь вы можете рисовать с другой прозрачностью - вы должны использовать цвета с alpha - [R,G,B,Alpha].

Например, полупрозрачный круг (transparency 50% = alpha=128)

pygame.draw.circle(surface, (0,0,0, 128), (100, 100), 100)

При alpha=0 он будет невидимым, при alpha=255 он будет полностью непрозрачным.


Если у вас есть .png с прозрачностью, то вы можете использовать .convert_alpha() после загрузки, чтобы получить прозрачность.

image = pygame.image.load("file.png").convert_alpha()

См. Примеры с прозрачностью в PyGame

enter image description here

...