2015-04-23 427 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中很難實現。