簡體   English   中英

Pygame的透明度問題

[英]Pygame transparency issue

我有一個相當混亂的問題。 我目前有一個倒計時,理想情況下,我希望倒計時中的文字較為透明(例如大約50%)

    pygame.init()
    surface = pygame.display.set_mode((0,0))
    fontObj = pygame.font.Font('freesansbold.ttf', 600)
    textSurfaceObj = fontObj.render("3", True, (255, 255, 255))
    textRectObj = textSurfaceObj.get_rect()
    textRectObj.center = (surface.get_width() / 2, surface.get_height() / 2)
    pygame.mouse.set_visible(False)

while True:
    surface.fill(255, 255, 255)
    pygame.display.update()

    time = str(datetime.datetime.now())
    filename = 'photos/' + time.replace(' ', '_') + '.jpg'
    for i in xrange(3, 0, -1):
            surface.fill(WHITE)
            textSurfaceObj = fontObj.render(str(i), True, (255, 0, 0)
            surface.blit(textSurfaceObj, textRectObj)
            pygame.display.update()
            pygame.time.wait(1000)
            pygame.display.update()
            pygame.time.wait(100);
            surface.fill(WHITE)
            pygame.display.update()

我嘗試放入surface.set_alpha(50)但這似乎什么也沒做。 任何建議都非常歡迎!

在pygame中,如果要使用抗鋸齒功能的文本使用顏色鍵(必須渲染透明文本),則必須設置背景顏色。 要獲得所需的結果,您只需要將背景顏色與表面顏色(在這種情況下為白色)匹配即可。 以下代碼(在...中的for i之后開始)對我有用:

surface.fill(WHITE)
textSurfaceObj = fontObj.render(str(i), True, (255, 0, 0),WHITE)
textSurfaceObj.set_alpha(50)
surface.blit(textSurfaceObj,(0,0))
pygame.display.update()
pygame.time.wait(500)

編輯:我對這里發生的事情做了一些挖掘,並且此郵件列表中的帖子詳細介紹了導致此問題的后端屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM