2012-07-17 3 views
1

일부 실험에서는 this sprite을 사용하고 있습니다. 김프로 시트의 일부분을 잘라 내고 파란색 배경을 투명하게 만들었습니다. 결과는 this입니다. 그러나이 스프라이트를 사용하여 코드를 실행하면 파란색 배경의 스프라이트로 끝납니다. 동일한 스프라이트가 다른 스프라이트 (다른 ​​스프라이트 시트, 같은 소스, 동일한 편집 프로세스)에서 발생합니다.PNG 이미지 스프라이트는 배경색을 유지합니다.

이제 PyGame 자체를 사용하여 투명 색상을 설정할 수 있다는 것을 알고 있지만 그게 내가 할 수있는 유일한 방법인지 궁금하네요? 이미지 자체를 통해 할 수 없습니까? 김프로 파이어 게임을 지운 후에도 파이 게임이 여전히 블루 백작을 읽는다.

P. SSCE는 pvz_shooter_test.py이고 GitHub 레포 중 image_test.py이 링크됩니다.

+0

새 스프라이트 버전을 사용 하시겠습니까? 또한 이미지를로드 할 코드를 제공하고 git 저장소를 검색하지 마십시오. 고맙습니다. – Constantinius

답변

1

mySurface.convert_alpha()를 사용해보십시오 (pygame documentation을 확인하십시오).

+1

연막! 그게 사실입니다! 좋은 아저씨 고마워! (-,) – skytreader

0

내가 김프로 지운 후에도 파이 게임이 어떻게 여전히 파란색 배경을 읽는 지에 대한 몇 가지 추가 정보가 있습니다.

이미지 파일 형식이 지원하는 경우 픽셀은 RGB 비트로 표시되지 않습니다. 모든 픽셀에 대한 추가 정보는 알파 채널입니다. 김프가 한 것은 알파 비트를 0 % 불투명도로 설정하는 것입니다. RGB 값은 그대로 유지됩니다 (이 경우 파란색). 내 PyGame 코드는 추가 알파 비트를 읽지 않도록 설정되었으므로 파란색을 나타내는 RGB 만 읽습니다. convert_alpha 메서드는 PyGame에게 알파 채널을 읽도록 지시했습니다.