मैक OSX पर इनपुट के लिए PS3 नियंत्रक का उपयोग करना


16

मैं OSX में PS3 नियंत्रक से कनेक्ट करने के लिए एक USB ड्राइवर खोजने में कामयाब रहा हूं , और जैसा कि यहां बताया गया है , ब्लूटूथ के माध्यम से नियंत्रक से जुड़ सकता है।

मैंने सत्यापित किया है कि इनपुट Snes9x के माध्यम से ठीक से काम कर रहा है।

वैसे भी, यह सिर्फ मेरे वास्तविक प्रश्न के लिए पृष्ठभूमि है । वहाँ मैक पर C ++ के माध्यम से PS3 छिपाई का उपयोग करने के लिए कोई रास्ता नहीं है? मैं XCode का उपयोग करके मैक पर C ++ विकास के लिए अपेक्षाकृत नया हूं, और संभवतः उपयोग करने के लिए लाइब्रेरी के लिए मेरी खोज में इंटरनेट निराशाजनक रहा है।

क्या किसी के पास इस बारे में कोई विचार है कि मैं कोड में नियंत्रक बटन / अक्ष राज्यों तक कैसे पहुंच सकता हूं, इसलिए मैं उन्हें अपने इनपुट मानचित्र में स्थानांतरित कर सकता हूं?


2
न तो बंद करना या हटाना वास्तव में उचित है क्योंकि यह एक अच्छा सवाल है; आपको इसका उत्तर पोस्ट करने में सक्षम होना चाहिए और इसे थोड़ी देर बाद स्वीकार करना चाहिए। मुझे आश्चर्य है कि उस पर एक प्रतिष्ठा द्वार है। यदि नहीं, तो इस सवाल पर वापस आने की योजना बनाइए जब आपके पास थोड़ा और प्रतिष्ठा है तो मुझे लगता है।

जवाबों:


4

इसलिए, एक या दो घंटे की फिडिंग और अलग-अलग पुस्तकालयों की कोशिश करना, और ऐसा लगता है कि ओआईएस (और एसडीएल ) सिर्फ एक जॉयस्टिक के रूप में नियंत्रक को पहचानता है और मुझे वह सब कुछ प्रदान करता है जिसकी मुझे आवश्यकता है।

यदि आप ऊपर दिए गए लिंक से OIS इंस्टॉल करते हैं, और 'कंसोलटेस्ट' प्रोजेक्ट बनाते / चलाते हैं, तो आप कंट्रोलर से डिबग विंडो में आउटपुट देख सकते हैं।


इसके अतिरिक्त, यहाँ के एनाम मैं उस मैच का उपयोग SDL द्वारा निर्मित एक्सिस / बटन नंबरों के लिए कर रहा हूँ (नोट ओआईएस नहीं है, जो कि मैंने अब उपयोग नहीं करने का निर्णय लिया है, नंबर अच्छी तरह से समान हो सकते हैं)। ध्यान दें कि ट्रिगर बटन को एक अक्ष के रूप में वर्गीकृत नहीं किया गया है, जो मुझे यकीन है कि उन्हें होना चाहिए (0-255 मेमोरी से):

//Values SDL attributes to individual PS3 axes
enum EPS3RawAxesIndex
{
    EPS3RawAxesIndex_LeftX = 0,
    EPS3RawAxesIndex_LeftY = 1,
    EPS3RawAxesIndex_RightX = 2,
    EPS3RawAxesIndex_RightY = 3
};

//Values SDL attributes to individual PS3 controller buttons
enum EPS3RawButtonIndex
{
    EPS3RawButtonIndex_Select           = 0,

    EPS3RawButtonIndex_JoyClickLeft     = 1,
    EPS3RawButtonIndex_JoyClickRight    = 2,

    EPS3RawButtonIndex_Start            = 3,

    EPS3RawButtonIndex_DpadUp           = 4,
    EPS3RawButtonIndex_DpadRight        = 5,
    EPS3RawButtonIndex_DpadDown         = 6,
    EPS3RawButtonIndex_DpadLeft         = 7,

    EPS3RawButtonIndex_TriggerLeft      = 8,
    EPS3RawButtonIndex_TriggerRight     = 9,

    EPS3RawButtonIndex_ShoulderLeft     = 10,
    EPS3RawButtonIndex_ShoulderRight    = 11,

    EPS3RawButtonIndex_Triangle         = 12,
    EPS3RawButtonIndex_Circle           = 13,
    EPS3RawButtonIndex_Cross            = 14,
    EPS3RawButtonIndex_Square           = 15,

    EPS3RawButtonIndex_PSButton         = 16
};
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.