我最近改变了我的 pygame 游戏处理菜单的方式。我正在渲染的任何文本都会先传输到名为 guiSurface
的表面,然后再传输到显示器(screen
)。
问题是这会导致文本出现别名,而直接将其传输到显示器则不会出现此问题。
使用guiSurface
(screenshot) :
menuFont = pygame.font.Font('assets/MarkPro.otf',15,bold=False,italic=False)
menuText = menuFont.render(version, 1, (255,255,255))
guiSurface.blit(menuText,(790-(menuText.get_size()[0]),475))
screen.blit(guiSurface, (0,0))
pygame.display.update()
直接显示(screenshot) :
menuFont = pygame.font.Font('assets/MarkPro.otf',15,bold=False,italic=False)
menuText = menuFont.render(version, 1, (255,255,255))
screen.blit(menuText,(790-(menuText.get_size()[0]),475))
screen.blit(guiSurface, (0,0))
pygame.display.update()
我尝试在 menuText
和 guiSurface
上使用 .convert()
和 .convert_alpha()
> 表面,在两个代码片段中的第 2 行之后,但无济于事。而且我不知道抗锯齿功能在哪一点消失了。
当然感谢您的帮助,并提前致谢。
最佳答案
都是我的错。在将 guiSurface 位图传输到显示器后,我没有清除它,这意味着我是在已有的内容上绘制,而不是在新的表面上绘制。
关于python-3.x - Pygame:当位 block 传输到 SRCALPHA 表面时,文本失去抗锯齿功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60552350/