gpt4 book ai didi

python - pygame.error 没有足够大的视频模式

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:49 25 4
gpt4 key购买 nike

我一直在使用 python 的 pygame 模块开发一款游戏,但在让它在其他计算机上正确显示时遇到问题。当我第一次开始写作时,我选择了分辨率(1400,1000)。这个选择没有真正的理由,我是编程新手,这似乎是一个不错的整数。我遇到的问题是,在许多笔记本电脑上,屏幕大于最大分辨率。我可以在窗口模式下运行它,但屏幕会向右侧和底部运行,并且有些内容用户看不到。然后我尝试在全屏模式下运行它,但随后收到错误消息“pygame.error No video mode large enough for 1400 , 1000”

最明显的解决方案是降低我的屏幕分辨率,但假设分辨率为 (1400,1000),我的所有 GUI 菜单按钮都会被传输到屏幕,并且更改所有内容将非常乏味。

当我连接一个分辨率足以正确显示的 USB 显示器时,最奇怪的事情发生了;游戏将在连接的显示器上正确显示,并且还将调整自身大小以在笔记本电脑显示器上正确显示!然后我可以断开另一个显示器的连接并继续玩游戏,没有问题!

如果我能以某种方式“欺骗”计算机,让它认为有一个以适当分辨率连接的监视器,一切都会完美运行。我承认这不是一个完美或优雅的解决方案,但我讨厌必须返回并重做我的整个 GUI...

size = (1400, 1000)
screen = pygame.display.set_mode(size,pygame.FULLSCREEN)

最佳答案

阅读 pygame.org/docs

只要您不传入任何参数,pygame.display.set_mode() 就会自动使用您当前的屏幕分辨率,无论您使用什么计算机。

至于为什么 1400 x 1000 不适合您,那不是常见的屏幕分辨率(甚至不确定它是否存在)。一些常见的包括:

1280 x 720

1600 x 900

1920 乘 1200

“我认为最明显的解决方案是降低屏幕分辨率,但假设分辨率为 (1400,1000),我的所有 GUI 菜单按钮都会被传输到屏幕,并且更改所有内容将非常乏味。”

避免此问题的一种方法是根据屏幕区域进行操作。例如,假设我的工作结果为 1280 x 800。

width = 1280
height = 800
screen = pygame.display.set_mode([width, height])

我希望我的位置位于屏幕中间。而不是说

position = 1280 / 2 # Hardcoded

position = width/2

现在,无论您将屏幕宽度更改为多少,您的位置都会保留。我建议查看http://www.pygame.org/docs/ref/rect.html有关如何以良好的方式跟踪 pygame 中的位置的信息。

关于标志:我对这些不太了解,所以我不会说太多,除了我从不使用它们并且做任何事情都没有任何问题。

关于python - pygame.error 没有足够大的视频模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36635607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com