簡體   English   中英

Python / Pygame-如何將不同的透明膠片放到不可見的表面上

[英]Python / Pygame - How to blit different transparencies onto an invisible surface

我想知道是否有可能將兩個圖像用120和200 alpha映射到0 alpha的表面上。

例如:

這是我所有的變量

game_display = pygame.display.set_mode((1280, 720))
transparent_display = pygame.Surface((1280, 720), pygame.SRCALPHA)
transparent_display.set_alpha(0)
object1 = pygame.Surface((100, 100))
object1.fill((255, 0, 0))
object2 = pygame.Surface((150, 50))
object2.fill((0, 0, 255))

現在,我要制作一個添加了所有組件的單一表面(圖像)(我希望將它們全部都放在一個表面上,因此不必在每個游戲循環中都加載每個表面)

transparent_display.blit(object1, (0, 0))
transparent_display.blit(object2, (50, 50))
game_display.blit(transparent_display, (0, 0)

我很抱歉,因為我對pygame中帶有表面的alpha知識了解不多。 另外,我知道要更新屏幕和所有內容,這不是問題。

(下面的注釋,如果有些不清楚的地方,我會詳細說明)

只需設置兩個對象的alpha值,您的代碼就可以工作。

object1.set_alpha(120)
object2.set_alpha(200)
# Then blit them onto `transparent_display`.

請注意, set_alpha不適用於按像素的Alpha曲面(加載有.convert_alpha()或傳遞pygame.SRCALPHA曲面的pygame.SRCALPHA ),但是您仍可以將透明曲面pygame.SRCALPHA到這些按像素的alpha曲面上。

暫無
暫無

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

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