2013-12-16 186 views
1

我正在使用pygame.font.Font.render()來渲染一些文本。我想文本是半透明的,即有一個不是255的alpha值,所以我嘗試傳遞一個帶alpha值的顏色參數(例如(255, 0, 0, 150))作爲pygame.font.Font.render()的顏色參數,但它沒有任何效果。我也嘗試在生成的Surface對象上使用pygame.Surface.convert_alpha(),但那也沒有做任何事情。有任何想法嗎?Python - Pygame - 渲染半透明文本

+0

α如何爲0?這仍然會顯示圖像嗎? –

回答

3

我不知道爲什麼,但經過一些實驗後,我發現用font.render創建的曲面不能改變它的alpha值。只需將該表面塗抹到另一個表面,然後更改新表面的Alpha值。

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不要忘記填充表面,在將文本粘貼到它上面之前,用白色更改alpha值。 – PygameNerd

+0

我實際上是使用海灘的一些像素藝術作爲背景,所以我將它填充爲黃色。我現在有一些非常漂亮的損壞數字,謝謝你的幫助! – jellyberg