2013-10-21 16 views
5

मैं स्प्राइट किट एक्सकोड टेम्पलेट के साथ गेम सेंटर या गेमकिट फ्रेमवर्क का उपयोग कैसे कर सकता हूं? स्प्राइट किट में, यह पर्दे का उपयोग करता है; लेकिन आम तौर पर लीडरबोर्ड को देखने के लिए आपको "presentModalViewController" की आवश्यकता होती है लेकिन यह SKView में संभव नहीं है।स्प्राइट किट में एक मोडल व्यू कैसे पेश करें?

अग्रिम धन्यवाद!

उत्तर

1

presentModalViewController को आपके क्यूवी व्यू पर देखने वाले नियंत्रक पर कॉल किया जाना चाहिए।

+0

क्या आप इसे एक SKLabelNode से कनेक्ट कर सकते हैं, इस पर विस्तार से बता सकते हैं कि मैं – iDevMartin

+0

बटन के रूप में उपयोग करता हूं यदि आपने स्प्राइट किट टेम्पलेट का उपयोग करके अपना गेम बनाया है तो यह आपके लिए एक व्यू कंट्रोलर बनाएगा। SKLabelNode को UIResponder से वंचित कर दिया गया है इसलिए लक्ष्य: क्रिया: forControlEvents: काम करना चाहिए। –

+1

मैंने इसे अपने एसकेवीव में आजमाया लेकिन यह काम नहीं कर रहा है। मदद! - (शून्य) स्पर्श किया गया है: (एनएसएसएटी *) के साथ स्पर्श करता है: (UIEvent *) घटना { यूआईटीच * स्पर्श = [किसी भी ऑब्जेक्ट को छूता है]; CGPoint स्थान = [स्पर्श स्थानInNode: self]; एसकेएनओडी * नोड = [स्वयं नोड एटपॉइंट: स्थान]; // अगर बटन छुआ ... अगर ([node.name isEqualToString: @ "उपलब्धियां"]) { // जो कुछ भी करें ... UIViewController * vc = self.view.window.rootViewController; [बीटीएनएन एडटेक्चर: वीसी एक्शन: @ चयनकर्ता (गेम सेंसर) के लिए नियंत्रण नियंत्रण: UIControlEventTouchUpInside]; } } – iDevMartin

1

तुम भी सेटिंग्स स्टोरीबोर्ड में देखने सेट कर सकते हैं, यानी

enter image description here

तो अगर आप एक स्प्राइट जोड़ें और एक बटन यानी _settingsBtn के लिए उपयोग यह segue प्रदर्शन करेंगे

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    { 
     UITouch* touch = [touches anyObject]; 
     CGPoint location = [touch locationInNode:self]; 

     if ([_settingsBtn containsPoint:location]) { 
      UIViewController *vc = self.view.window.rootViewController; 
      [vc performSegueWithIdentifier:@"settingsPushSegue" sender:self]; 
     } 
    } 

फिर आप इसे हटाने के लिए एक अवांछित segue का उपयोग कर सकते हैं, बस aa UIButton।

स्टोरीबोर्ड पर आपके विचार नियंत्रक कक्षा में इस है ..

- (IBAction)unwindToHideSettingsModal:(UIStoryboardSegue *)unwindSegue 
{ 
    //NSLog(@"UNWILD"); 
} 

तो अब, अपने बटन आप हरी बाहर निकलने के segue को जोड़ा गया है, और इसके बाद के संस्करण खोलना segue चयन से नियंत्रण खींचें।

enter image description here

अब आप यह दिखाने के लिए और अपेक्षा के अनुरूप छिपाने होगा। आप स्टोरीबोर्ड में अपनी सेटिंग्स UI ect डिज़ाइन कर सकते हैं।

आपको यह शुरू करना चाहिए।

+0

यह काम नहीं कर रहा है।मैं GKGameCenterViewConroller को स्टोरीबोर्ड पर देखने का प्रयास नहीं कर रहा हूं। – iDevMartin

+0

अपने ऐप को पोस्ट करें और बीमार दिखें यदि आपको – DogCoffee

+0

पसंद है तो यह एक मोडल व्यू प्रस्तुत करता है जैसा कि सवाल पूछा गया है, मैंने आईओएस 7 के साथ गेम सेंटर का इस्तेमाल किया है, इसलिए यदि आपको यह पुस्तक http://www.raywenderlich.com/53279/ios- गेम-बाय-ट्यूटोरियल-संस्करण-1-0-अब-उपलब्ध है यह सभी गेम सेंटर जानकारी को कवर करता है – DogCoffee

4

स्मिक ने मुझे इसी तरह की समस्या के लिए सही दिशा में इंगित किया। मुझे अपने एसकेसीसीन से मुख्य व्यू कंट्रोलर को एक संदेश भेजने की आवश्यकता थी। यह मेरे लिए यह किया: अपने SKScene में

, ViewController

#import "MyViewController.h" 

आयात तो यह एक संदेश भेजने:

[(MyViewController *)self.view.window.rootViewController myMethod]; 

आप ViewController में एक विधि GameKit खुलती बनाने की कोशिश कर सकते आपके लिए देखें, जो एसकेसीसीन से ट्रिगर किया गया है। धन्यवाद Smick!

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