2010-04-27 11 views
7

के बजाय टर्मिनल पर जाता है मुझे टर्मिनल के माध्यम से मैक ओएस एक्स पर एक पायगम आधारित ऐप चलाने में समस्या हो रही है। कीस्ट्रोक जैसे इनपुट इवेंट मेरे पायथन ऐप के बजाय टर्मिनल पर जाते हैं, और पाइगेम द्वारा पता लगाया जाता है।मैक ओएस एक्स पायगम इनपुट पाइथन

उदाहरण के लिए, मैं निम्नलिखित परीक्षण स्क्रिप्ट है:

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" 

न तो K_ESCAPE है और न ही K_SPACE इस स्क्रिप्ट जब मैं एक मैक ओएस एक्स टर्मिनल से चलाने के द्वारा नियंत्रित किया जाएगा, लेकिन टर्मिनल रिक्त स्थान वापस गूंज होगा।

मैं पाइगमेम (पीई-गेम) के मैकपॉर्ट्स पोर्ट चला रहा हूं, जो कि पायथन 2.4 पर निर्भर करता है, और मैंने python24 को सक्रिय संस्करण बनाने के लिए python_select भी उपयोग किया है।

+0

क्या यह एक पायगम विंडो पॉप अप करता है? क्या आपने उस खिड़की पर ध्यान केंद्रित करने की कोशिश की? – nosklo

+0

हां यह एक खिड़की खुलता है, और हाँ मैंने उस विंडो फोकस देने की कोशिश की। ऐसा लगता है कि फोकस स्वीकार किया जाता है लेकिन इनपुट टर्मिनल में अभी भी दिखाई देता है। – Parappa

उत्तर

2

मैक पोर्ट्स पर डिफ़ॉल्ट पाय-गेम में आपके द्वारा वर्णित समस्या है। इसके बजाय एक काम-आसपास py-game2.6 लक्ष्य स्थापित करना है। यह ओएस एक्स 10.6.7 के साथ मेरे लिए काम करता है।

1

क्या आप जांच सकते हैं कि pygame.K_ * स्थिरांक वास्तव में आपके कीबोर्ड के सही मानों से मेल खाते हैं या नहीं? रिकॉर्ड के लिए मैंने मैकबुक प्रो पर लिनक्स में अपना कोड आजमाया और ऐसा लगता है कि यह ठीक काम कर रहा है।

+0

मैंने इस कोड को लिनक्स में भी आजमाया है और यह ठीक काम करता है। मुझे पूरा यकीन है कि समस्या मेरे टर्मिनल पर्यावरण और/या पायगम कॉन्फ़िगरेशन के साथ है, लेकिन मुझे नहीं पता कि यह क्या है। – Parappa

+1

एक और सुझाव (यदि आपने इसे हल नहीं किया है), तो क्या आप निश्चित हैं कि 'python_select' जिस तरह से आप चाहते हैं उस पर काम कर रहा है? http://stackoverflow.com/questions/1768881/how-to-make-python-select-work-for-python-command – aganders3