2017-11-14 8 views
1

두 개의 이미지를 blit 할 수 있는지 궁금 해서요. 0과 함께 표면에 120 및 200 알파를 말합니다.Python/Pygame - 다른 투명 필름을 보이지 않는 표면에 blit하는 방법

예를 들어

:

여기

모든 내 변수

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)) 

지금 내가 에 추가 된 모든 구성 요소와 함께 하나의 표면 (이미지)를 만들고 싶어 (I는 한면에 그들 모두를 원하는 나는 t에 매우 많은 지식을 가지고 있지 않는 한 그래서 나는) 각 표면에게 내가 사과

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

각 게임 루프주기를로드 이 없습니다 그는 파이 게임 (pygame)에서 표면이있는 알파의 주제입니다. 또한, 화면과 모든 것을 업데이트하는 것을 알고 있습니다. 그것은 문제가 아닙니다.

+0

그리고 작동하지 않는 것은 무엇입니까? –

답변

2

그냥 두 객체의 알파 값을 설정하고 코드는 작동합니다 (뭔가가 충분히 명확하지 않은 경우 아래에 의견을 내가 자세히 설명합니다). set_alpha가 (이 당신이 pygame.SRCALPHA을 통과하는 이미지가 .convert_alpha() 또는 표면로드) 픽셀 단위의 알파 표면이 작동하지 않습니다,하지만 당신은 여전히 ​​이러한 픽셀 단위의 알파 표면에 투명한 표면을 블럭 전송 할 수

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

참고.

관련 문제