Pygame: текст теряет сглаживание при перетаскивании на поверхность SRCALPHA - PullRequest
2 голосов
/ 05 марта 2020

Я недавно изменил способ, которым моя игра-пигейм обрабатывает меню. Любой текст, который я отрисовываю, является бликом на поверхность, называемую guiSurface, прежде чем он будет отображаться на дисплее (screen). Проблема заключается в том, что это приводит к тому, что текст выглядит псевдонимом, тогда как при перетаскивании его непосредственно на экран эта проблема не возникает.

С guiSurface (снимок экрана) :

        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()

Непосредственно для отображения (скриншот) :

        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()

Я пытался использовать .convert() и .convert_alpha() на обеих поверхностях menuText и guiSurface , после строки 2 в обоих фрагментах кода, но безрезультатно. И я понятия не имею, в какой момент сглаживание теряется.

Помощь, конечно, ценится, и заранее спасибо.

1 Ответ

2 голосов
/ 05 марта 2020

Я виноват. Я не очистил guiSurface после перетаскивания его на дисплей, то есть я рисовал поверх того, что уже было, вместо поверхности fre sh.

...