문제

내가 작업중 인 컴퓨터 게임을 가지고 있으며, 속도 목적으로 알파 컴포넌트를 끄는 옵션을 사용자에게 제공하고 싶습니다. Pygame은 어디에서나 수표를하는 대신, "알파를 사용하지 말라"는 글로벌 옵션이있어서 Set_alpha 등의 모든 호출을 무시할 수 있습니까?

도움이 되었습니까?

해결책

피그 게임 문서를 고려할 것입니다 "아니요, 알파를 비활성화 할 수있는 전 세계 방법이 없습니다".
그러나 적어도 두 개가 있습니다 '현지의' 이를 수행하는 방법 :

  • 먼저 Pygame.surface를 서브 클래스하고 SET_ALPHA의 구현을 제공하는 것이며, 이는 전 세계 알파 설정을 존중할 수 있습니다.

  • 두 번째는 사용중인 픽셀 형식에 따라 다르기 때문에 조금 더 까다 롭습니다. Pygame 문서를 인용하기 위해 :

Surface.set_alpha
전체 표면의 알파 값을 설정하십시오
[...]
이 값은 픽셀 표면 알파와 다릅니다. 표면 형식에 픽셀 알파 당 포함되면이 알파 값은 무시됩니다. 표면에 픽셀 알파가 포함 된 경우 알파 값을 없음으로 설정하면 픽셀 당 투명도가 비활성화됩니다.
[...]

이를 통해 두 가지 텍스처 세트를 제공 할 수 있습니다.

  • 불투명 (픽셀 당) 알파 채널이있는 하나는 모든 통화를 덮어 쓸 수 있습니다. set_alpha ()
  • 픽셀 당 알파가 없으므로 당신의 set_alpha ()

이것이 도움이되기를 바랍니다!

다른 팁

convert ()-함수가 이미지의 알파를 비활성화한다는 것을 읽었습니다. 내가 아는 것은 :

Convert ()-함수를 사용하면 내 컴퓨터의 화면 비가 이미지의 이미지가 16 비트의 색 깊이로 약 150fps로 배치됩니다.

image = image.convert()#video system has to be initialed
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top