Я работаю над настраиваемыми компонентами gui в pygame, а при создании компонента слайдера я даю слайдеру функцию Draw(parentSurface)
, которая рисует ползунок на родительскую поверхность при сохранении место нахождения.Как сделать полупрозрачное изображение в pygame динамически
Сейчас это работает, но слайдер хранит два изображения:
- слайд изображение, динамически сделано из плитки, чтобы соответствовать заданной длине ползунка, измерение с шириной заданной длиной, а высота 3 пикселя; и
- «выберите» изображение, которое представляет собой небольшой индикатор 8x12, чтобы показать, где находится ползунок.
Проблема заключается в том, что когда я Draw(parentSurface)
я делаю это:
def Draw(self, parsurf):
'''draw the element on parsurf at the given location'''
w1 = self.slider_img.get_width()
h1 = self.slider_img.get_height()
w2 = self.select_img.get_width()
h2 = self.select_img.get_height()
self.image = pygame.Surface((w1, h2 + h1))
self.image = ColorMod.Transparency(self.image, 0)
self.image.blit(self.slider_img, (0, self.image.get_height()-h1))
x = self.value/self.conversionratio
self.image.blit(self.select_img, (x- w2/2, 0))
if self.debug_on:
print "attempting to blit to the given surface"
parsurf.blit(self.image, self.loc)
Однако БЛИЦ с черным фоном на self.image
. Я хочу, чтобы это было полупрозрачным, чтобы фон мог показать, где нет ничего на self.image
. Должен ли я просто отказаться от self.image
и нарисовать self.slider_img
и self.select_img
непосредственно на родительскую поверхность?
Насколько я понимаю, идет, если вы используете Windows, это работает, однако, если вы используете Ubuntu (не пробовал на другой ОС Linux), используя 'Surface.convert_alpha()' не работает , – KodyVanRy