pygame窗口全屏超过屏幕大小
anlondon Lv6

在win10测试pygame.FULLECREEN全屏显示参数的时候,发现全屏后的窗口大小超过了电脑屏幕的大小

查看设置的获取屏幕大小的参数,也都是正常的

1
2
3
4
vInfo = pygame.display.Info()
size = width, height = vInfo.current_w, vInfo.current_h
pygame.display.set_mode(size,pygame.FULLSCREEN)
print(size) # (1920,1080)

最后在网络上看到说是 win系统(Vista 以上系统),在一些显示环境拥有自动拉伸所有窗口的选项。当该选项被启动时,自动拉伸会扭曲 Pygame 窗口的外观。


解决办法:

1
2
3
4
5
6
import ctypes
ctypes.windll.user32.SetProcessDPIAware()
# 添加上面两句即可解决
true_res = (ctypes.windll.user32.GetSystemMetrics(0), ctypes.windll.user32.GetSystemMetrics(1))
pygame.display.set_mode(true_res,pygame.FULLSCREEN)
print(true_res) # (1920.,1080)

使用版本
win10 1909
python :3.6.4
pygame : 1.9.6

 Comments