2011-08-17 16 views
5

Sto usando pygame per programmare un semplice test comportamentale. Lo sto eseguendo sul mio MacBook Pro e ho quasi tutte le funzionalità funzionanti. Tuttavia, durante i test avrò un secondo monitor esterno che vede il soggetto e il monitor del laptop. Mi piacerebbe avere il gioco così a schermo intero sul monitor esterno e non sul monitor del portatile in modo che io possa monitorare le prestazioni. Attualmente, l'inizio del file simile a:pygame dual monitor e fullscreen

#! /usr/bin/env python2.6 

import pygame 
import sys 

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

stavo pensando di iniziare il gioco in uno schermo ridimensionabile, ma che OS X ha problemi di ridimensionamento della finestra.

risposta

7

Pygame non supporta ancora due visualizzazioni in un singolo processo pygame. Vedere la domanda here e sviluppatore risposta immediately after, dove dice

volta SDL 1.3 è finito poi Pygame otterrà il supporto per l'utilizzo di più finestre nello stesso processo.

Quindi, le opzioni sono:

  1. utilizzare più processi. Due istanze di pygame, ognuna ingrandita sul proprio schermo, che comunica avanti e indietro (è possibile utilizzare uno qualsiasi: il molto cool python multiprocessing module, TCP locale, pipe, scrittura/lettura di file, ecc.)
  2. Impostare la stessa risoluzione su entrambi i visualizza e crea una finestra grande (ampia) che li estende con le informazioni su una metà e la visualizzazione utente sull'altra. Quindi posiziona manualmente la finestra in modo che il lato utente sia sul loro schermo e il tuo sia sullo schermo del laptop. È hacky, ma potrebbe essere un uso migliore del tuo tempo rispetto all'ingegnerizzazione di una soluzione migliore ("Se è pessima e funziona, non è stupido";).
  3. Usa pyglet, che è simile a Pygame e supports full screen windows: pyglet.window.Window(fullscreen=True, screens[1])

Buona fortuna.

+0

Ho un problema simile a quello in cui ho un proiettore che fornisce un motivo di luce, mentre voglio ancora poter fare cose sullo sfondo dell'altro monitor. È possibile? – user391339

+0

Pyglet non supporta i fullscreen multi-monitor su MacOS. L'ho trovato nel modo più duro dopo aver scaricato un sacco di tempo, senza ottenere risultati e trovato questo commento nel sorgente Pyglet: "# BUG: Sospetto che questo non faccia la cosa giusta quando si usano più monitor (che sarebbe andare a schermo intero sul monitor in cui si trova la finestra), ma non ho modo di testare ". Non funziona e in effetti ho trovato * no * su MacOS che può aprire più display a schermo intero. –