불투명도가 낮은 Pygame에서 스프라이트를 어떻게 블릿 / 그리기합니까? [복제]
게임에 약간의 안개를 끼 우려 고하는데 안개가 너무 두껍거나 불투명도가 높지 않다는 것을 깨달은 문제가 있습니다. 더 낮은 불투명도로 블릿을 만들고 싶지만 온라인에서 찾은 튜토리얼이 작동하지 않거나 이미 방법을 알기를 기대하는 방법이 확실하지 않습니다.
코드가 어떻게 작성되었는지 궁금한 경우 :
screen.blit(fog, (0, 0))
편집 : 중요한 경우를 대비하여 Python 3.8을 사용하고 있습니다.
편집 편집 : Pygame 2.0.0을 사용하고 있습니다.
답변
더 낮은 불투명도로 블릿하지 않고 더 낮은 불투명도를 가진 표면을 블릿합니다.
surface.set_alpha()
블릿하기 전에 안개의 불투명도를 변경하는 데 사용 합니다.
문서 : https://www.pygame.org/docs/ref/surface.html#pygame.Surface.set_alpha
또한 이미지에서 포그를로드하는 경우 해당 이미지를 사용해야 surface.convert_alpha()
합니다. 그렇지 않으면 이미지 형식에 투명도를 등록하지 않습니다.
blit()실제로 혼합 표면 목표 상 표면 의 알파 채널에 따라, 표면을 . .NET Framework의 알파 채널을 변경하기 만하면됩니다 fog
. set_alpha()전체 표면 이미지에 대한 알파 값을 설정하는 데 사용 합니다.
표면의 현재 알파 값을 설정합니다. 이 표면을 대상에 블리 팅하면 픽셀이 약간 투명하게 그려집니다. 알파 값은 0에서 255 사이의 정수이고 0은 완전히 투명하며 255는 완전히 불투명합니다.
50 % 투명 안개를 적용하려면 :
fog.set_alpha(127)
screen.blit(fog, (0, 0))