2013-12-16 6 views
1

일부 텍스트를 렌더링하는 데 pygame.font.Font.render()을 사용하고 있습니다. 텍스트가 반투명, 즉 255가 아닌 다른 알파 값을 가지므로 pygame.font.Font.render()의 색상 인수로 알파 값 (예 : (255, 0, 0, 150))으로 색상 인수를 전달하려고 시도했지만 효과가 없습니다. 결과 Surface 객체에 pygame.Surface.convert_alpha()을 사용해 보았지만 아무 것도하지 않았습니다. 어떤 아이디어?파이썬 - 파이 게임 - 반투명 텍스트

+0

0의 알파는 어떻습니까? 여전히 이미지가 표시됩니까? –

답변

3

왜 그런지 모르겠지만 실험을 마친 후 font.render으로 만든 표면에는 알파 값을 변경할 수 없습니다. 그 표면을 다른 표면으로 blit하고 새로운 표면의 알파 값을 변경하십시오.

textsurface=font.render('Test', True, (0, 0, 0)) 
surface=pygame.Surface((100, 30)) 
surface.fill((255, 255, 255)) 
surface.blit(textsurface, pygame.Rect(0, 0, 10, 10)) 
surface.set_alpha(50) 
window.blit(surface, pygame.Rect(0, 30, 10, 10)) 
+0

이 작품은 내 질문에 답하지만, 이제는 텍스트 주변의 서핑이 검게 변합니다! 나는 계속 실험 할 것이다. – jellyberg

+0

@jellyberg는 텍스트를 블리트하기 전에 흰색으로 알파 값을 변경하는 표면을 채우는 것을 잊지 않습니다. – PygameNerd

+0

사실 해변의 픽셀 아트를 배경으로 사용하고 있으므로 노란색으로 채 웁니다. 도와 줘서 고마워요. 정말 멋진 표정 인데요. – jellyberg

관련 문제