본문 바로가기

코딩/파이썬 pygame

파이썬 게임 016. pygame.Surface의 set_alpha()로 투명도 설정

Game - Python - Pygame

 

pygame.Surface 객체의 set_alpha() 함수로 surface의 투명도 설정이 가능하다.

 

아래의 이미지는 투명도(alpha)가 서로 다른 6개의 surface를 화면에 표시한 결과이다.

 

 

<코드 1>

# python 3.9.6
# pygame 2.0.1

import pygame


def main():
    pygame.init()

    screen = pygame.display.set_mode((640, 480), flags=pygame.NOFRAME)
    clock = pygame.time.Clock()

    screen.fill('white')

    surf1 = pygame.Surface((100, 100))
    surf1.fill('blue')
    screen.blit(surf1, (50, 50))

    surf1.set_alpha(50)
    screen.blit(surf1, (50, 200))

    surf2 = pygame.Surface((100, 100)).convert_alpha()
    surf2.set_alpha(255)
    surf2.fill('blue')
    screen.blit(surf2, (200, 50))

    surf2.set_alpha(150)
    surf2.fill('blue')
    screen.blit(surf2, (200, 200))

    surf2.set_alpha(50)
    surf2.fill('blue')
    screen.blit(surf2, (200, 350))

    surf3 = pygame.Surface(size=(100, 100), flags=pygame.SRCALPHA, depth=32)
    surf3.set_alpha(128)
    surf3.fill('blue')
    screen.blit(surf3, (350, 50))

    pygame.display.update()

    pygame.event.clear()
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT\
                    or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
                running = False
                break
        if not running:
            break

        clock.tick(30)

    pygame.quit()


if __name__ == '__main__':
    main()

 

각 surface의 투명도 alpha 값은 get_alpha() 함수로 확인할 수 있다.