2014-12-04 7 views
6

के साथ गेम सेंटर में हाईस्कॉर की रिपोर्ट कैसे करें मैं गेम सेंटर में अपने हाईस्कॉर की रिपोर्ट करने की कोशिश कर रहा हूं। मुझे लगता है कि मेरा कोड काम कर रहा है लेकिन गेम सेंटर हाईस्कॉर के साथ अपडेट नहीं हो रहा है। लीडरबोर्ड इस संदर्भ नाम के साथ बनाया गया है: "funfairBalloon" और यह लीडरबोर्ड आईडी: 5500 9943. मेरे पास 3 सैंडबॉक्स परीक्षक हैं, गेम सेंटर सक्षम है और खिलाड़ियों को गेम सेंटर में प्रमाणित किया जाता है।स्विफ्ट

और मेरे कोड को प्रमाणित करने और रिपोर्ट करने के लिए है:

func authenticateLocalPlayer() 
{ 
    var localPlayer = GKLocalPlayer.localPlayer() 

    localPlayer.authenticateHandler = 
     { (viewController : UIViewController!, error : NSError!) -> Void in 
      if viewController != nil 
      { 
       self.presentViewController(viewController, animated:true, completion: nil) 
      } 
      else 
      { 
       if GKLocalPlayer.localPlayer().authenticated { 
        let gkScore = GKScore(leaderboardIdentifier: "55009943") 
        gkScore.value = Int64(highscore) 
        GKScore.reportScores([gkScore], withCompletionHandler: {(error) -> Void in 
         let alert = UIAlertView(title: "Success", 
          message: "Score updated", 
          delegate: self, 
          cancelButtonTitle: "Ok") 
          alert.show() 
         }) 
       } 
      } 
     } 
} 

आप एक विचार है?

+1

लीडरबोर्ड पहचानकर्ता को अपनी ऐप आईडी जोड़ने का सबसे अच्छा अभ्यास है। मुझे इससे पहले काम करने में परेशानी नहीं थी। आपको एक ही समस्या हो सकती है। "Com.whateverName.55009943" नामक एक परीक्षण लीडरबोर्ड बनाएं और अपना कोड अपडेट करें। देखें कि क्या यह मेरे लिए काम करता है। – Scott

+0

मैंने "com.whateverName.55009943" नामक आईट्यून्स कनेक्ट पर लीडरबोर्ड बनाया और 'लीडरबोर्ड इंडेंटिफायर: "com.whateverName.55009943" अपडेट किया लेकिन "लेकिन स्कोर के पास गेम सेंटर पर कोई स्कोर नहीं है और कोई खिलाड़ी नहीं है। qmzdcjselrbhvslkvhblqziehbflshbv AAAAAHHHHHHHHH मैं crazyyyyyyyy – Haox

+0

YAHOUUUUUU !!! आपको धन्यवाद मेरी गलती मिली !! मेरा लीडरबोर्ड अच्छी तरह से स्थापित नहीं किया गया था! मैं तुमसे प्यार करता हूँ !!!! 3 दिनों से देख रहे हैं !!!! – Haox

उत्तर

3

यह लीडरबोर्ड पहचानकर्ता करने के लिए अपने ऐप्लिकेशन आईडी जोड़ने के अच्छी आदत है। मुझे इससे पहले काम करने में परेशानी नहीं थी। आपको एक ही समस्या हो सकती है। "Com.whateverName.55009943" नामक एक परीक्षण लीडरबोर्ड बनाएं और अपना कोड अपडेट करें। देखें कि क्या यह मेरे लिए काम करता है।

यदि आप अपने सैंडबॉक्स परीक्षकों के लिए टेस्ट फ्लाइट का उपयोग कर रहे हैं तो उन्हें आईट्यून्स कनेक्ट पर भी जोड़ना सुनिश्चित करें।

अंत में, यह link आपको समस्या निवारण में मदद करनी चाहिए कि अगर आप ऊपर दिए गए सलाह का पालन करते हैं तो आप लीडरबोर्ड पर क्यों दिख रहे हैं।

0

आप इस GitHub रेपो https://github.com/jocelynlih/SwiftGameBook/blob/master/PencilAdventure/PencilAdventure/ScoreManager.swift#L26

में इस तर्क पर एक नज़र डालें स्कोर आप authenticateHandler बंद समारोह गुजरती हैं और कि में अगर localPlayer तो स्कोर रिपोर्ट प्रमाणीकृत है कॉल करने की आवश्यकता रिपोर्ट करने के लिए कर सकते हैं।

var localPlayer = GKLocalPlayer.localPlayer() localPlayer.authenticateHandler = {(viewController : UIViewController!, error : NSError!) -> Void in if viewController != .None { // Show view controller } else { if localPlayer.authenticated { var scoreToReport = GKScore(leaderboardIdentifier: "Leaderboard\(level)", player: localPlayer) scoreToReport.value = Int64(score) GKScore.reportScores([scoreToReport], withCompletionHandler: nil) } else { // User not authenticated } } }

+0

आपके संदेश के लिए धन्यवाद लेकिन मैंने आपके कोड के साथ प्रयास किया और यह काम नहीं करता है। मैंने जिथब रेपो में तर्क को समझने की कोशिश की लेकिन मेरा ज्ञान बहुत कमजोर है ... मेरे पास अभी भी वही संदेश है: 'रिपोर्ट स्कोर <जीकेएसकोर: 0x7fc1bca31b30> प्लेयर: प्लेयरआईडी: जी: एफ 586362 एफ 0 सी 610 डीबी51 डीसी 5221012 एई 9 डी 2 9 उपनाम: सोफी 88 रैंक: 0 दिनांक: 2014 -12-05 21:58:29 +0000 मूल्य: 9 स्वरूपित वैल्यू: (शून्य) संदर्भ: 0x0 लीडरबोर्ड: funfairBalloon समूह: (शून्य) ' – Haox