最初,我正在创建一个具有宽度和高度尺寸的游戏表面
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)
我可以知道正确的方法是什么吗?谢谢。
最佳答案
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)
关于python - 如何将当前的 pygame 表面转换为更大的表面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60481977/