2010-04-27 10 views
7

J'ai des problèmes pour exécuter une application basée sur pygame sur Mac OS X via Terminal. Les événements d'entrée tels que les frappes de touches vont au Terminal à la place de mon application Python, et sont détectés par pygame.L'entrée de pygame de Mac OS X va au terminal au lieu de Python

Par exemple, j'ai le script de test suivant:

import pygame 

pygame.init() 
screen = pygame.display.set_mode((640, 480)) 

done = False 
while not done: 
    pygame.event.pump() 
    keys = pygame.key.get_pressed() 
    if keys[pygame.K_ESCAPE]: 
     done = True 
    if keys[pygame.K_SPACE]: 
     print "got here" 

Ni K_ESCAPE ni K_SPACE seront traitées par ce script quand je le lance à partir d'un Mac OS X Terminal, mais terminal Retransmet les espaces. Je lance le port MacPorts de pygame (py-game), qui dépend de Python 2.4, et j'ai aussi utilisé python_select pour faire de python24 la version active.

+0

Est-ce que cela fait apparaître une fenêtre pygame? Avez-vous essayé de focaliser cette fenêtre? – nosklo

+0

Oui, il apparaît une fenêtre, et oui j'ai essayé de donner cette fenêtre de mise au point. Il semble accepter la mise au point mais l'entrée apparaît toujours dans Terminal. – Parappa

Répondre

2

Le jeu py par défaut sur Mac Ports présente le problème que vous décrivez. Une solution consiste à installer la cible py-game2.6 à la place. Cela fonctionne pour moi avec OS X 10.6.7.

1

Pouvez-vous vérifier si les constantes pygame.K_ * correspondent réellement aux valeurs correctes de votre clavier? Pour l'anecdote, j'ai essayé votre code sous Linux sur un MacBook Pro et ça semble fonctionner correctement.

+0

J'ai aussi essayé ce code sous Linux et ça marche très bien. Je suis assez sûr que le problème est avec mon environnement Terminal et/ou la configuration Pygame, mais je ne sais pas ce que c'est. – Parappa

+1

Encore une suggestion (au cas où vous n'auriez pas résolu cela), êtes-vous sûr que 'python_select' fonctionne comme vous le souhaitez? http://stackoverflow.com/questions/1768881/how-to-make-python-select-work-for-python-command – aganders3

Questions connexes