Есть ли способ создать полупрозрачный круг с полностью прозрачным фоном и полностью непрозрачной рамкой посередине?

#python-3.x #pygame #transparency

#python-3.x #pygame #прозрачность

Вопрос:

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

Комментарии:

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

Ответ №1:

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

  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

введите описание изображения здесь

Комментарии:

1. Спасибо, чувак, это действительно поставило меня в тупик, но ваше решение сработало отлично!