Есть ли способ сделать Rect Transparent в Pygame?

-5

Можно ли сделать прозрачный прозрачный в pygame? Мне нужно это, потому что я использую прямоугольники в качестве частиц для своей игры. :П

спросил(а) 2015-07-02T00:42:00+03:00 4 года, 11 месяцев назад
0
54

Функции pygame.draw не будут рисовать с помощью альфы. В документации говорится:

Большинство аргументов принимают аргумент цвета, который представляет собой триплет RGB. Они также могут принимать квадруплет RGBA. Значение альфа будет записано непосредственно в Поверхность, если оно содержит пиксельные альфы, но функция рисования не будет рисоваться прозрачно. Что вы можете сделать, так это создать вторую поверхность, а затем выпустить ее на экран. Blitting будет выполнять альфа-смешивание и цветные клавиши. Кроме того, вы можете указать альфа на уровне поверхности (быстрее и меньше памяти) или на уровне пикселей (медленнее, но точнее). Вы можете сделать:

s = pygame.Surface((1000,750))  # the size of your rect
s.set_alpha(128) # alpha level
s.fill((255,255,255)) # this fills the entire surface
windowSurface.blit(s, (0,0)) # (0,0) are the top-left coordinates

или,

s = pygame.Surface((1000,750), pygame.SRCALPHA)   # per-pixel alpha
s.fill((255,255,255,128)) # notice the alpha value in the color
windowSurface.blit(s, (0,0))

Имейте в виду в первом случае, что все, что вы нарисовали для s, получит близовое значение, которое вы указали. Поэтому, если вы используете это, чтобы нарисовать элементы управления наложением, например, вам может быть лучше использовать вторую альтернативу.

Кроме того, рассмотрите возможность использования pygame.HWSURFACE для создания аппаратного ускорения.

Проверьте документы Surface на сайте pygame, особенно вступление.

Нарисуйте прозрачный прямоугольник в pygame

Раньше у меня был этот вопрос в качестве пользователя pygame, и это метод решения вашей проблемы.

ответил(а) 2015-07-02T00:59:00+03:00 4 года, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема