2011-08-17 9 views
5

J'utilise pygame pour programmer un test comportemental simple. Je cours sur mon macbook pro et j'ai presque toutes les fonctionnalités qui fonctionnent. Cependant, lors des tests, je vais avoir un deuxième moniteur externe que le sujet voit et le moniteur d'ordinateur portable. Je voudrais avoir le jeu en plein écran sur le moniteur externe et non sur le moniteur de l'ordinateur portable afin que je puisse surveiller les performances. À l'heure actuelle, le début du fichier ressemble à quelque chose comme:moniteurs double pygame et plein écran

#! /usr/bin/env python2.6 

import pygame 
import sys 

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

Je pensais commencer le jeu dans un écran redimensionnable, mais OS X a des problèmes de redimensionnement de la fenêtre.

Répondre

7

Pygame ne prend pas encore en charge deux affichages dans un seul processus pygame. Voir la question here et développeur réponse immediately after, où il dit

Une fois que SDL 1.3 est terminée alors Pygame obtenir de l'aide pour l'utilisation de plusieurs fenêtres dans le même processus.

Ainsi, vos options sont:

  1. Utiliser plusieurs processus. Deux instances de pygame, chacune maximisée sur son propre écran, communiquant d'avant en arrière (vous pouvez utiliser: python multiprocessing module, TCP local, tuyaux, écriture/lecture de fichiers, etc.)
  2. Réglez la même résolution sur vos deux affiche, et crée une grande fenêtre (large) qui les couvre avec vos informations sur une moitié et l'affichage de l'utilisateur sur l'autre. Ensuite, placez manuellement la fenêtre de sorte que le côté de l'utilisateur est sur leur écran et le vôtre est sur l'écran d'ordinateur portable. C'est hacky, mais peut-être une meilleure utilisation de votre temps que l'ingénierie d'une meilleure solution ("Si c'est studpid et ça marche, ce n'est pas stupide";).
  3. Utilisez pyglet, qui est similaire à Pygame et supports full screen windows: pyglet.window.Window(fullscreen=True, screens[1])

Bonne chance.

+0

J'ai un problème similaire lorsque j'ai un projecteur délivrant un motif de lumière, alors que je veux toujours pouvoir faire des choses en arrière-plan sur l'autre moniteur. Est-ce possible? – user391339

+0

Pyglet ne prend pas en charge les écrans complets multi-écrans sur MacOS. Je l'ai trouvé à la dure après avoir vidé beaucoup de temps, sans résultat, et trouvé ce commentaire dans la source de Pyglet: "# BUG: Je pense que ça ne va pas dans le bon sens quand on utilise plusieurs moniteurs (ce qui serait aller en plein écran sur le moniteur où la fenêtre est située.) Cependant, je n'ai aucun moyen de tester. " Cela ne fonctionne pas, et en fait j'ai trouvé * non * plateforme sur MacOS qui peut ouvrir plusieurs affichages en plein écran. –