2010-04-27 10 views
7

Tengo problemas para ejecutar una aplicación basada en pygame en Mac OS X a través de Terminal. Los eventos de entrada, como las pulsaciones de teclas, van a la Terminal en lugar de a mi aplicación de Python, y son detectados por pygame.La entrada de Pygame de Mac OS X va a Terminal en lugar de a Python

Por ejemplo, tengo el siguiente script de prueba:

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 serán manejados por este guión cuando lo ejecuto desde un Terminal de X Mac OS, pero la terminal se hagan eco de vuelta los espacios.

Estoy ejecutando el puerto de pygame (py-game) de MacPorts, que depende de Python 2.4, y también he usado python_select para hacer de python24 la versión activa.

+0

¿Aparece una ventana de pygame? ¿Intentó enfocar esa ventana? – nosklo

+0

Sí, aparece una ventana, y sí, traté de darle ese enfoque a la ventana. Parece que acepta el foco, pero la entrada aún aparece en el terminal. – Parappa

Respuesta

2

El juego predeterminado en los Puertos Mac tiene el problema que usted describe. Una solución alternativa es instalar el objetivo py-game2.6 en su lugar. Esto funciona para mí con OS X 10.6.7.

1

¿Puedes verificar si las constantes pygame.K_ * corresponden realmente a los valores correctos para tu teclado? Para el registro probé tu código en Linux en una MacBook Pro y parece estar funcionando bien.

+0

He intentado este código en Linux también y funciona bien. Estoy bastante seguro de que el problema está en el entorno de mi terminal y/o en la configuración de Pygame, pero no sé qué es. – Parappa

+1

Una sugerencia más (en caso de que no haya resuelto esto), ¿está seguro de que 'python_select' funciona de la manera que desea? http://stackoverflow.com/questions/1768881/how-to-make-python-select-work-for-python-command – aganders3

Cuestiones relacionadas