[PYTHON] 파이 게임에 투명한 직사각형을 그립니다.
PYTHON파이 게임에 투명한 직사각형을 그립니다.
어떻게하면 알파가있는 색상의 사각형을 그릴 수 있습니까? 나는 가지고있다:
windowSurface = pygame.display.set_mode((1000, 750), pygame.DOUBLEBUF)
pygame.draw.rect(windowSurface, pygame.Color(255, 255, 255, 128), pygame.Rect(0, 0, 1000, 750))
그러나 흰색 사각형을 50 % 투명하게하려면 알파 값이 작동하지 않는 것처럼 보입니다.
해결법
-
==============================
1.pygame.draw 함수는 알파로 그리지 않습니다. 문서에 의하면 :
pygame.draw 함수는 알파로 그리지 않습니다. 문서에 의하면 :
당신이 할 수있는 것은 두 번째 서피스를 생성 한 다음 그것을 화면에 블릿 (blit)하는 것입니다. 블리 팅은 알파 블렌딩 및 색상 키를 수행합니다. 또한 표면 레벨 (더 빠르고 더 적은 메모리)이나 픽셀 레벨 (느리지 만 더 정확한)에서 알파를 지정할 수 있습니다. 다음 중 하나를 수행 할 수 있습니다.
s = pygame.Surface((1000,750)) # the size of your rect s.set_alpha(128) # alpha level s.fill((255,255,255)) # this fills the entire surface windowSurface.blit(s, (0,0)) # (0,0) are the top-left coordinates
또는,
s = pygame.Surface((1000,750), pygame.SRCALPHA) # per-pixel alpha s.fill((255,255,255,128)) # notice the alpha value in the color windowSurface.blit(s, (0,0))
첫 번째 경우에는 사용자가 지정한 다른 값이 지정한 알파 값으로 blitted됩니다. 예를 들어 오버레이 컨트롤을 그릴 때이 방법을 사용한다면 두 번째 대안을 사용하는 것이 더 나을 것입니다.
또한 pygame.HWSURFACE를 사용하여 표면을 하드웨어 가속으로 만들 것을 고려하십시오.
파이 게임 사이트에서 Surface 문서, 특히 소개를 확인하십시오.
-
==============================
2.알파를 나타 내기 위해 네 번째 값을 색상 튜플에 추가 할 수 있습니다.
알파를 나타 내기 위해 네 번째 값을 색상 튜플에 추가 할 수 있습니다.
pygame.draw.rect(windowSurface, (255, 255, 255, 127), pygame.Rect(0, 0, 1000, 750))
from https://stackoverflow.com/questions/6339057/draw-a-transparent-rectangle-in-pygame by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 서브 프로세스로 여러 개의 bash 명령 실행하기 (0) | 2018.10.20 |
---|---|
[PYTHON] dict_keys, dict_items 및 dict_values는 무엇입니까? (0) | 2018.10.20 |
[PYTHON] urllib2를 사용하는 모듈을 단위 테스트하려면 어떻게합니까? (0) | 2018.10.20 |
[PYTHON] Opencv python을 사용하여 비디오 스트리밍에서 프레임 단위로 비디오 이미지를 처리하는 방법 (0) | 2018.10.20 |
[PYTHON] 파이썬에서 함수에 타임 아웃을 추가하는 법 (0) | 2018.10.20 |