Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pygame中更改显示模式而不关闭游戏_Python_Pygame - Fatal编程技术网

Python 在pygame中更改显示模式而不关闭游戏

Python 在pygame中更改显示模式而不关闭游戏,python,pygame,Python,Pygame,我正在使用pygame开发一个非常基本的Python游戏(我还没有这方面的经验)。我希望它能在窗口模式、全屏模式和无边界模式下工作,我设法使它能在每种模式下工作,但现在我正在尝试使其工作,以便您可以从ingame选项在这些模式之间切换。例如,如果我已将游戏设置为“窗口化” screen = py.display.set_mode((1440,810), HWSURFACE | DOUBLEBUF) display_info = py.display.Info() size = display_

我正在使用pygame开发一个非常基本的Python游戏(我还没有这方面的经验)。我希望它能在窗口模式、全屏模式和无边界模式下工作,我设法使它能在每种模式下工作,但现在我正在尝试使其工作,以便您可以从ingame选项在这些模式之间切换。例如,如果我已将游戏设置为“窗口化”

screen = py.display.set_mode((1440,810), HWSURFACE | DOUBLEBUF)
display_info = py.display.Info()
size = display_info.current_w, display_info.current_h
os.environ['SDL_VIDEO_WINDOW_POS'] = "0,0"
screen = py.display.set_mode(size, HWSURFACE | DOUBLEBUF | NOFRAME)
现在,您想通过以下选项将其设置为全屏:

display_info = py.display.Info()
size = display_info.current_w, display_info.current_h
screen = py.display.set_mode(size, HWSURFACE | DOUBLEBUF | FULLSCREEN)
屏幕坏了,我没有真正的全屏。将其设置为“无边框”窗口时也会发生同样的情况

screen = py.display.set_mode((1440,810), HWSURFACE | DOUBLEBUF)
display_info = py.display.Info()
size = display_info.current_w, display_info.current_h
os.environ['SDL_VIDEO_WINDOW_POS'] = "0,0"
screen = py.display.set_mode(size, HWSURFACE | DOUBLEBUF | NOFRAME)
正如我所说,在没有事先打开的情况下运行这些代码可以很好地工作,但是尝试更改它(ingame)是行不通的

是否有一个简单的解决方法或我缺少的东西?因为我知道的大多数现代游戏在改变窗口模式时不需要重启


编辑:我应该注意到,在全屏和无边框之间切换效果很好,只有在切换到窗口或从窗口切换时才有问题。

通常在pygame/SDL中这种方式很好。一个简单的例子。对你有用吗?你正在使用哪个操作系统?听起来更像是“你”的问题(操作系统、图形卡驱动程序或窗口管理器或类似的东西)。@Sloth-这是一个很好的例子。谢谢也许你可以显示代码,在那里你可以随时改变屏幕模式。你是在处理某种事件吗?显然,在我重新启动电脑后,问题不再存在。哦,好吧。。