pygame双显示器和全屏

时间:2011-08-17 17:48:11

标签: python pygame

我正在使用pygame来编写一个简单的行为测试。我在我的macbook pro上运行它并且几乎所有功能都正常工作。但是,在测试期间,我将有一个主体看到的第二个外部显示器和笔记本电脑显示器。我想在外接显示器上全屏显示游戏,而不是在笔记本电脑的显示器上,以便我可以监控性能。目前,该文件的开头类似于:

#! /usr/bin/env python2.6

import pygame
import sys

stdscr = curses.initscr()
pygame.init()
screen = pygame.display.set_mode((1900, 1100), pygame.RESIZABLE)

我正在考虑在可调整大小的屏幕中启动游戏,但OS X在调整窗口大小时出现问题。

2 个答案:

答案 0 :(得分:8)

Pygame不支持单个pygame进程中的两个显示(尚未)。查看问题here和开发人员回答immediately after,他说

  

完成SDL 1.3后,pygame将获得在同一进程中使用多个窗口的支持。

所以,你的选择是:

  1. 使用多个流程。两个pygame实例,每个实例在其自己的屏幕上最大化,来回通信(您可以使用以下任何一种:非常酷的python multiprocessing module,本地TCP,管道,写入/读取文件等)
  2. 在两个显示器上设置相同的分辨率,并创建一个大(宽)窗口,将您的信息显示在另一半上,用户显示在另一半上。然后手动放置窗口,以便用户侧在屏幕上,而您的用户在笔记本电脑屏幕上。它是hacky,但可能更好地利用你的时间而不是设计一个更好的解决方案(“如果它是笨拙的,它有效,它不是愚蠢的”;)。
  3. 使用pyglet,类似于pygame和supports full screen windowspyglet.window.Window(fullscreen=True, screens[1])
  4. 祝你好运。

答案 1 :(得分:0)

我不知道您是否可以在 OS X 中执行此操作,但是对于那里的 Windows 用户来说,这是值得一提的,如果您只想让您的程序在第二个屏幕上全屏运行并且您在 Windows 上,只需将另一个屏幕设置为主屏幕即可。

可以在设置中的重新排列显示下找到该设置。

到目前为止,我可以在主显示器上运行的任何东西都可以以这种方式运行,无需更改代码。