2012-02-23 18 views
5

मैं गेम सेंटर लीडरबोर्ड के साथ एक कोकोस 2 डी आईफोन ऐप से निपट रहा हूं। इस ऐप में उपयोगकर्ता को लैंडस्केप मोड में लाइनें खींचना है (आईफोन क्षैतिज है)। ऐसा तब होता है जब स्पर्श स्क्रीन के बाहर शुरू हो सकता है (माइक्रोफ़ोन के पास बाईं तरफ) और स्क्रीन के अंदर जारी रखें। जैसे ही उंगली स्क्रीन ढांचे में प्रवेश करती है, ऐप सही ढंग से चीजों को चित्रित करना शुरू करता है। हालांकि अगर मैं लीडरबोर्ड (जिसे वास्तव में सही ढंग से चित्रित किया गया है) के साथ दृश्य दिखाता है और मैं गेम पर वापस आ जाता हूं तो ऐप स्क्रीन के बाहर शुरू होने वाले स्पर्शों को संभालने से रोकता है। यह वास्तव में स्क्रीन के शीर्ष पर शुरू होने वाले लोगों को संभालने से रोकता है जैसे कि शीर्ष पर पिक्सेल की एक पंक्ति है जिसे नहीं माना जाता है।कोकोस 2 डी और लीडरबोर्ड

मैंने शुरू नेताओं इस तरह से बोर्ड:

- (void) showLeaderboard 
{ 
    GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init]; 
if (leaderboardController != nil){ 
    tempVC=[[UIViewController alloc] init] ; 
    leaderboardController.leaderboardDelegate = self; 
    [[[CCDirector sharedDirector] openGLView] addSubview:tempVC.view]; 

    [tempVC presentModalViewController:leaderboardController animated:YES]; 
    tempVC.view.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0.0f)); 
    tempVC.view.bounds = CGRectMake(0, 0, 480, 320); 
    tempVC.view.center = CGPointMake(240, 160); 

    [leaderboardController release]; 
} 
} 

और यह इस तरह से जारी:

-(void) leaderboardViewControllerDidFinish: (GKLeaderboardViewController *) viewController{ 
[tempVC dismissModalViewControllerAnimated:YES]; 
[tempVC.view.superview removeFromSuperview]; 
[tempVC.view removeFromSuperview]; 

[tempVC release]; 


} 

उत्तर

1

ठीक है, आपकी समस्या को थोड़ा बुरा लगता है, और सभी मैं प्रदान कर सकते हैं करने के लिए एक अनुमान है जहां समस्या हो सकती है ..

मेरे पास लीडरबोर्ड एकीकृत के साथ एक कोकोस 2 डी गेम है, और स्पर्श पूरी तरह से काम कर रहे हैं, इसलिए मैं आपको विवरण देता हूं कि मैं लीडरबोर्ड व्यू कंट्रोल कैसे जोड़ूं ler, और आप इसे आज़माने के लिए चाहते हो सकता है:

नोट:यह आम तौर पर RootViewController का उपयोग कर Cocos2d में UIKit तत्वों का उपयोग करने के लिए बेहतर है, v0.99.5 में जोड़ा।

//Action method invoked upon pressing the "Show LeaderBoards button" 
-(void)showLeaderboardButtonClicked { 
    [gameCenterHandler showLeaderboard]; 
} 

//Inside the GameCenter Handler: 
-(void) showLeaderboard { 
    if (isGameCenterAvailable == NO) { 
     return; 
    } else if (![[GKLocalPlayer localPlayer] isAuthenticated]) { 
     [self authenticateLocalPlayer]; 
    } else { 
     GKLeaderboardViewController* leaderboardVC = [[[GKLeaderboardViewController alloc] init] autorelease]; 
     if (leaderboardVC != nil) { 
      leaderboardVC.leaderboardDelegate = self; 
      [rootVC presentModalViewController:leaderboardVC animated:YES]; 
     } 
} 

-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController*)viewController { 
    [rootVC dismissModalViewControllerAnimated:YES]; 
} 

कहाँ rootVCAppDelegate.h में है:

RootViewController *viewController; 
+0

मैं वास्तव में viewControllery संपत्ति मेरे AppDelegate – Sindico

+0

में तो नहीं है, आप Cocos2d के एक पुराने संस्करण का उपयोग कर रहे हैं। व्यक्तिगत अनुभव से, 0.9 9.5 से पहले के संस्करण छोटी हैं और कई अस्थिरताएं हैं। V1.0.1 पर अपडेट करें और आपके मुद्दे को हल करने का एक बड़ा मौका है – Mazyod

+0

मैंने वास्तव में 0.9 9 से पहले एक संस्करण के साथ शुरुआत की लेकिन अब मैं 1.0.1 का उपयोग कर रहा हूं। हालांकि ऐपडिलेगेट अभी भी कोई रूटव्यू कंट्रोलर नहीं दिखाता है :(? मुझे कहां जांचना चाहिए? – Sindico

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