在 pygame 中创建多个屏幕
有没有什么方法可以在 Pygame 中创建多个屏幕,而无需每次都重新绘制到屏幕。例如,如果我们想创建一个启动屏幕,然后创建一个带有按钮的主菜单。单击“开始游戏”按钮后,它将进入一个新屏幕,这是实际的游戏。我的意思是类似于 Visual Studio 上的“Form”或 Android 上的 Activites。
Is there any way way to create multiple screens in Pygame without redrawing to the screen every time. For example, if we want to create a splash screen, then a main menu with buttons. On clicking the 'Start Game' button, it would go to a new screen which is the actual game. What I mean is anything similar to the 'Form' on Visual Studio or the Activites on Android.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
取决于你的意思。
如果您的意思是同时创建多个窗口,不,您不能这样做 - 这是 SDL 的限制(尽管您可以通过使用多处理(而不是多线程)来伪造它)。
如果您的意思是更改一个屏幕,是的,您可以通过多次调用 pygame.display.set_mode(...) 来做到这一点。您可以更改分辨率、参数等。如果您正在执行 OpenGL 操作,那也会重新创建上下文。
当然,如果您只是指在同一个窗口中绘制不同的内容!这就是 PyGame 的意义所在。
除此之外,你还得澄清一下。
Depends on what you mean.
If you mean making multiple windows at the same time, no, you can't do that--it's a limitation of SDL (although you CAN fake it by using multiprocessing (not multithreading)).
If you mean changing one screen around, yes, you can do that, with multiple calls to pygame.display.set_mode(...). You can change the resolution, arguments, etc. If you're doing OpenGL stuff, that will remake the context too.
If you just mean drawing different things to the same window, of course! That's sorta the point of PyGame.
Other than that, you'll have to clarify.
只需用白色填充屏幕,然后将第二个屏幕绘制到主屏幕上即可。然后,当您需要另一个屏幕时,只需将屏幕重新填充为黑色,然后继续。如果您的两个屏幕都有功能并且您使用像选项卡这样的键在屏幕之间“切换”,这将会有所帮助。
Just fill the screen with white and then draw the second screen onto the main screen. Then when you need the other screen, just refill the screen with black and then continue. It would help if both of your screens a function and you used a key like tab to "switch" between screens.