2012-04-17 15 views
18

में प्लेयर को दोबारा कनेक्ट करें मुझे गेम सेंटर के लिए जीकेमैच क्लास का उपयोग करके डिस्कनेक्ट किए गए प्लेयर को एक अच्छी तरह से फिर से जोड़ने के तरीके को समझने में समस्या हो रही है। खेल एक बनाम 1 खेल है।गेम सेंटर

जब मैं एक कट खिलाड़ी का पता लगाने, मैं इस कॉल के साथ मैच करने के लिए है कि विशिष्ट खिलाड़ी को पुनः आमंत्रित करने का प्रयास करें:

[[GKMatchmaker sharedMatchmaker] addPlayersToMatch:theMatch matchRequest:request completionHandler:^(NSError *error) 

यह काम करता है के रूप में यह करना चाहिए था। जब दूसरे खिलाड़ी ने कनेक्शन स्थापित किया है तो वह फिर से मिल जाता है और मैच जारी रह सकता है। लेकिन यह एक समस्या छोड़ देता है जिसे मैं हल करने में सक्षम नहीं हूं। यहां परिदृश्य आता है:

  • प्लेयर 1 डिस्कनेक्ट करता है।
  • प्लेयर 2 मैच छोड़ देता है जबकि प्लेयर 1 डिस्कनेक्ट हो जाता है।
  • प्लेयर 1 दोबारा जुड़ता है और पता लगाता है कि वह प्लेयर 2 से कनेक्शन खो गया है और प्लेयर 2 से पुनः कनेक्ट करने का प्रयास करता है।
  • प्लेयर 2 एक नया मैच ढूंढ रहा है, जो वह मैचमेकर व्यू कंट्रोलर के साथ कर रहा है।
  • प्लेयर 2 अचानक प्लेयर 1 के साथ पुराने मैच में शामिल हो गया, जिसे उन्होंने छोड़ा था।

तो मेरी समस्या यह है कि matchmakerViewController चलो खिलाड़ियों को पुनर्निर्मित होने पर पुराने मैचों में शामिल होने दें। क्या इस पुन: कनेक्शन परिदृश्य को संभालने का कोई बेहतर तरीका है ताकि लोगों को पुराने मैचों में वापस आमंत्रित नहीं किया जा सके?

+0

@ कपकेक। मेरे कोड में यह हो रहा है कि जब 1player डिस्कनेक्ट हो जाता है तो अन्य स्वचालित रूप से गेम से डिस्कनेक्ट हो जाता है। ऐसा होता है? प्लेयर 1 के इस डिस्कनेक्शन से बचने के लिए कैसे करें हालांकि खिलाड़ी 2get डिकनेक्ट –

उत्तर

0

मैं आगे बढ़ता हूं और उसी गेम पर प्लेयर 1 से रीनवाइट को रोकता हूं यदि मुझे पता चला कि प्लेयर 2 ने डिस्कनेक्ट पर समय निकालने के बजाय छोड़ने के फ़ंक्शन का उपयोग किया है।

+0

खिलाड़ी 1 खिलाड़ी को कैसे पता चलेगा डिस्कनेक्ट हो जाओ? –

1

आप उस खिलाड़ी को एक विकल्प प्रदान कर सकते हैं जो अभी भी कनेक्ट है, फिर से आमंत्रित करने या छोड़ने के लिए। आप उस खिलाड़ी को मिलमेकिंग अनुरोध भी हटा सकते हैं जो छोड़कर अन्य खिलाड़ी छोड़ देता है।

+0

मेरी समस्याएं पुनर्विचार है। प्लेयर 1 खिलाड़ी 2 को दोबारा जोड़ता है जबकि खिलाड़ी 2 एक नया गेम ढूंढ रहा है। यह एक समस्या है क्योंकि खिलाड़ी 2 को छोड़कर एक गेम में फिर से मिल जाएगा। यदि अन्य खिलाड़ी छोड़ देता है तो मैं मिलमेकिंग अनुरोध को हटा नहीं सकता, क्योंकि मुझे नहीं पता कि वह कब छोड़ता है। वे इस बिंदु से जुड़े नहीं हैं और यह नहीं बता सकते कि खिलाड़ी छोड़ देता है या नहीं। –

संबंधित मुद्दे