Вы должны реализовать событие VIDEORESIZE
(см. pygame.event
).
При изменении размера окна получите новый размер окна из четных атрибутов:
width, height = event.w, event.h
Создайте новую поверхность, связанную с окном, и масштабируйте фон до нового размера. :
def screen_setting(width,height):
p.init()
flag = p.RESIZABLE
screen=p.display.set_mode((width, height), flag, 0)
bk_orig = p.image.load(pic).convert()
bk = p.transform.smoothscale(bk_orig, (width, height))
while True:
for event in p.event.get():
if event.type == p.QUIT:
sys.exit()
elif event.type == p.VIDEORESIZE:
width, height = event.w, event.h
screen = p.display.set_mode((width, height), flag, 0)
bk = p.transform.smoothscale(bk_orig, (width, height))
screen.blit(bk, (0 ,0))
p.display.flip()