2011-08-17 14 views
5

Estoy usando pygame para programar una prueba de comportamiento simple. Lo estoy ejecutando en mi macbook pro y tengo casi toda la funcionalidad funcionando. Sin embargo, durante las pruebas tendré un segundo monitor externo que el sujeto verá y el monitor de la computadora portátil. Me gustaría que el juego aparezca en pantalla completa en el monitor externo y no en el monitor de la computadora portátil para poder controlar el rendimiento. Actualmente, el inicio del archivo se ve algo como:monitores dobles de pygame y pantalla completa

#! /usr/bin/env python2.6 

import pygame 
import sys 

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

Estaba pensando en iniciar el juego en una pantalla de tamaño variable, pero que OS X tiene problemas para cambiar el tamaño de la ventana.

Respuesta

7

Pygame no admite dos pantallas en un único proceso de pygame (aún). Ver la pregunta here y desarrollador respuesta immediately after, donde dice

Una vez SDL 1.3 se terminó luego Pygame obtener apoyo para el uso de múltiples ventanas en el mismo proceso.

Por lo tanto, las opciones son:

  1. Use procesos múltiples. Dos instancias de pygame, cada una maximizada en su propia pantalla, que se comunican hacia adelante y hacia atrás (puede usar cualquiera de los siguientes: python multiprocessing module, TCP local, tuberías, escritura/lectura de archivos, etc.)
  2. Establezca la misma resolución en ambos muestra, y crea una ventana grande (ancha) que los expande con su información en una mitad y la pantalla de usuario en la otra. Luego, coloque manualmente la ventana de modo que el lado del usuario esté en su pantalla y el suyo esté en la pantalla de la computadora portátil. Es hacky, pero podría ser un mejor uso de tu tiempo que diseñar una mejor solución ("Si es studpid y funciona, no es estúpido";).
  3. Uso Pyglet, que es similar a PyGame y supports full screen windows: pyglet.window.Window(fullscreen=True, screens[1])

Buena suerte.

+0

Tengo un problema similar cuando tengo un proyector que entrega un patrón de luz, mientras que todavía quiero poder hacer cosas en segundo plano en el otro monitor. es posible? – user391339

+0

Pyglet no es compatible con pantallas completas de monitores múltiples en MacOS. Descubrí esto de la peor manera después de tirar mucho tiempo, sin obtener resultados, y encontrar este comentario en la fuente de Pyglet: "# ERROR: sospecho que esto no hace lo correcto cuando se usan monitores múltiples (que sería vaya a pantalla completa en el monitor donde se encuentra la ventana). Sin embargo, no tengo forma de probarlo ". No funciona, y de hecho, he encontrado una plataforma * no * en MacOS que puede abrir múltiples pantallas a pantalla completa. –