2015-04-23 335 views
2

我需要建立一个具有多个窗口的应用程序。在其中一个窗口中,我需要能够玩一个简单的游戏,另一个窗口必须显示问题并获得影响游戏的用户的响应。Pygame与多个窗口

(1)我想用pygame来制作游戏。有没有简单的方式让pygame在多个窗口中操作? (2)如果没有简单的方法来解决(1),是否有一种简单的方法来使用一些其他的python GUI结构,这将允许我同时运行pygame和另一个窗口?

回答

3

简短的回答是否定的,在同一个过程中创建两个pygame窗口是不可能的。如果你想用一个进程运行两个窗口,你应该看看pygletcocos2d

如果您必须使用pygame,另一种方法是使用进程间通信。你可以有两个进程,每个进程都有一个窗口。他们将使用套接字将消息中继给对方。如果你想走这条路,请查看插座教程here

+0

套接字可能是太低级的解决方案。 ZeroMq或其他类似的库可能足以来回推送消息。 –

0

内部set_mode()可能会设置一个指针,该指针表示唯一显示的内存。因此,如果我们写:

screenA = pygame.display.set_mode((500,480), 0, 32) 
screenB = pygame.display.set_mode((500,480), 0, 32) 

例如,我们可以做这样的事情以后:

screenA.blit(background, (0,0)) 
screenB.blit(player, (100,100)) 

两者的blit()调用将位块传输相同的表面上。 screenA和screenB指向相同的内存地址。使用2个窗口在pygame中很难实现。