Как преобразовать текущую поверхность пигмея в большую? - PullRequest
3 голосов
/ 02 марта 2020

Изначально я создаю игровую поверхность с размерами WIDTH и HEIGHT

pygame.init()
SCREEN1 = pygame.display.set_mode((WIDTH,HEIGHT))
sprites = pygame.sprite.Group()
sprites.add( ..... #add sprite
...
...

sprites.draw(SCREEN)
SCREEN.blit("test", (WIDTH-4, HEIGHT-2))
pygame.display.flip()
clock.tick(FPS)

Как я могу преобразовать SCREEN1 в SCREEN2 с масштабом x2? Я знаю, что есть pygame.transform.scale, я пробовал следующее, но оно не работает. Он показывает только пустое окно с новым измерением.

pygame.init()
SCREEN1 = pygame.display.set_mode((WIDTH,HEIGHT))
sprites = pygame.sprite.Group()
sprites.add( ..... #add sprite
...
...

sprites.draw(SCREEN)
SCREEN.blit("test", (WIDTH-4, HEIGHT-2))

SCREEN2=pygame.display.set_mode((WIDTH*2,HEIGHT*2))
pygame.transform.scale(SCREEN, (WIDTH*2,HEIGHT*2), SCREEN2)

pygame.display.flip()
clock.tick(FPS)

Могу ли я узнать, как правильно это сделать? Спасибо.

1 Ответ

3 голосов
/ 02 марта 2020

SCREEN - это дисплей pygame.Surface, связанный с окном. При выполнении pygame.display.set_mode() создается новая поверхность отображения, а дата на предыдущей поверхности отображения теряется. Создайте копию поверхности (pygame.Surface.copy()) перед созданием новой поверхности отображения:

old_screen = SCREEN.copy()

SCREEN2 = pygame.display.set_mode((WIDTH*2,HEIGHT*2))
pygame.transform.scale(old_screen, (WIDTH*2,HEIGHT*2), SCREEN2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...