2013-12-16 3 views
1

Я использую pygame.font.Font.render() для визуализации некоторого текста. Я хочу, чтобы текст был полупрозрачным, т. Е. Имел альфа-значение, отличное от 255, поэтому я попытался передать цветовой аргумент с альфа-значением (например, (255, 0, 0, 150)) в качестве аргумента цвета для pygame.font.Font.render(), но это не оказало никакого эффекта. Я также попытался использовать pygame.Surface.convert_alpha() на результирующем объекте Surface, но ничего не сделал. Есть идеи?Python - Pygame - рендеринг полупрозрачного текста

+0

Как насчет альфы 0? Будет ли это показывать изображение? –

ответ

3

Я не уверен, почему, но после некоторых экспериментов я обнаружил, что поверхность, созданная с помощью font.render, не может иметь значение альфа-значения. Просто покройте эту поверхность другой поверхностью и измените альфа-значение новой поверхности.

textsurface=font.render('Test', True, (0, 0, 0)) 
surface=pygame.Surface((100, 30)) 
surface.fill((255, 255, 255)) 
surface.blit(textsurface, pygame.Rect(0, 0, 10, 10)) 
surface.set_alpha(50) 
window.blit(surface, pygame.Rect(0, 30, 10, 10)) 
+0

Это работает и отвечает на мой вопрос, но теперь серфинг вокруг текста черный! Я буду экспериментировать. – jellyberg

+0

@jellyberg не забудьте заполнить поверхность, на которой вы измените альфа-значение с белым, прежде чем вы начнете заливать текст. – PygameNerd

+0

Я фактически использую пиксельное искусство пляжа в качестве фона, поэтому я наполнил его желтым. У меня теперь есть действительно красивые номера повреждений, спасибо за вашу помощь! – jellyberg

Смежные вопросы