pygame.error没有足够大的视频模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pygame.error没有足够大的视频模式相关的知识,希望对你有一定的参考价值。
我一直在使用pygame模块为python开发一个游戏,并且遇到了让它在其他计算机上正常显示的问题。当我第一次开始写作时,我选择了(1400,1000)的分辨率。这个选择没有真正的理由,我/我是编程的新手,它看起来像一个很好的圆数。我遇到的问题是,在许多笔记本电脑上,屏幕大于最大分辨率。我可以在窗口模式下运行它,但屏幕会向右和向下运行,并且有些东西是用户看不到的。然后我尝试在全屏模式下运行它,但后来我收到错误消息“pygame.error没有足够大的视频模式1400,1000”
最明显的解决方案是降低我的屏幕分辨率,但是我的所有GUI菜单按钮都显示在屏幕上,假设分辨率为(1400,1000)并且更改所有内容将非常繁琐。
最奇怪的事情发生在连接USB监视器时,其分辨率足够高以便正确显示;游戏将在连接的监视器上正确显示,并且还将自己调整大小以便在笔记本电脑监视器上正确显示!然后我可以断开另一个监视器并开始玩游戏没问题!
如果我能以某种方式“欺骗”计算机思考有一个与正确分辨率连接的监视器,一切都会完美。我承认,这不是一个完美或优雅的解决方案,但我不得不回去重做我的整个GUI ......
size = (1400, 1000)
screen = pygame.display.set_mode(size,pygame.FULLSCREEN)
阅读pygame.org/docs
只要您没有传递任何参数,pygame.display.set_mode()将自动使用您当前的屏幕分辨率,无论您使用何种计算机。
至于为什么1400乘1000不适合你,这不是一个常见的屏幕分辨率(甚至不确定它是否存在)。一些常见的包括:
1280乘720
1600乘900
1920年到1200年
“最明显的解决方案是降低我的屏幕分辨率,但我所有的GUI菜单按钮都会显示在屏幕上,因为分辨率达到(1400,1000)并且更改一切都会非常繁琐。”
避免此问题的一种方法是根据屏幕区域进行操作。例如,假设我工作的结果是1280乘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中的位置。
关于旗帜:我对这些不太了解所以我不会说太多,除了我从不使用它们并且没有任何问题做任何事情。
我希望这有帮助
```
from win32api import GetSystemMetrics
width = GetSystemMetrics(0)
height = GetSystemMetrics(1)
size = (width, height)
```
我会尝试将其合并到您的代码中
以上是关于pygame.error没有足够大的视频模式的主要内容,如果未能解决你的问题,请参考以下文章
pygame.error:视频系统未初始化(pycharm)