所以我的问题不在于我的代码中的错误,而是关于pygame显示无法正常工作的更多信息。因此,每当我运行游戏时,我在我的笔记本电脑上使用pygame全屏进行编码,它无法正确显示内容,然后当我alt + tab并再次重新进入显示屏时,一切正常。所以我决定运行一些测试来试图找出原因:
我按照this answer中的建议使用pywin32
方法将GetSystemMetrics()
安装到我的口译员。
import win32api
import pygame
pygame.init()
print(win32api.GetSystemMetrics(0), win32api.GetSystemMetrics(1))
这会打印1536 864
。然后,我使用pygame.display.Info()
import win32api
import pygame
pygame.init()
display_info = pygame.display.Info()
print(display_info.current_w, display_info.current_h) # prints the height and width of monitor
这会打印3840 2160
。我也看看我的显示设置,它说我的分辨率是3840 x 2160,这意味着我有一台4K显示器。所以我认为发生的是pygame获得分辨率,3840 x 2160,但它认为我的显示器是正常的(不是4K),所以给我一个显示器我的显示器尺寸的2.5倍(比例尺)尺寸比例为2.5),这实际上是一个超出显示器的巨大显示窗口。所以我的问题是:我的理论是关于为什么pygame窗口太大是正确的,其次,我如何修复它而不必导入win32api
。如果您需要更多信息,请在评论中告诉我,并提前感谢您。希望我不会失明,答案是完全明显的。