是否有一些关于实施游戏中心的简单文档?

时间:2014-01-27 19:22:46

标签: xcode ios7 game-center gkscore

我正在尝试将Game Center应用到我的ios7游戏(Xcode 5)中,但是苹果文档中的材料以及我在网上看到的内容似乎并没有很好用。

这是我正在使用的两个主要方法希望产生没有错误,但我也没有得到任何数据:

- (void) retrieveTopTenScores 
 {
  GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
  if (leaderboardRequest != nil)
   {
    leaderboardRequest.playerScope = GKLeaderboardPlayerScopeGlobal;
    leaderboardRequest.timeScope = GKLeaderboardTimeScopeToday;
    leaderboardRequest.identifier = kLeaderboardID;
    leaderboardRequest.range = NSMakeRange(1,10);
    [leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
        if (error != nil)
        {
            // Handle the error.
        }
        if (scores != nil)
        {                
          // Process the score information. 
         } else {
           NSLog(@"scores retrieved successfully but no scores in the leaderboard"); 
        }
    }];
  }
}



-(void)submitMyScore
{
 //This is the same category id you set in your itunes connect GameCenter LeaderBoard
 GKScore *myScoreValue = [[GKScore alloc] initWithLeaderboardIdentifier:kLeaderboardID];
 myScoreValue.value = 5123123;

 [myScoreValue reportScoreWithCompletionHandler:^(NSError *error){
    if(error != nil){
        NSLog(@"Score Submission Failed");
    } else {
        NSLog(@"Score Submitted");
    } 
 }];
}

所以我正在寻找一些简单的示例代码来成功完成这项工作...... 谢谢 富

2 个答案:

答案 0 :(得分:0)

我发现您的代码没有任何问题。玩家运行时是否验证了玩家?你得到了什么错误?如果您查找示例GameKit代码,那么iOS 6 Advanced Cookbook from Erica Sadun处会有一些代码,但您不应该知道如何阅读API。

答案 1 :(得分:0)

答案是将iOS7中的分数提交给游戏中心

Game Center Helper / Manager / Control(Object).h

 + (gamecenterhelper/manager/control *)sharedInstance;
 -(void)reportScore:(int64_t)score forLeaderboardID:(NSString*)identifier;

Game Center Helper / Manager / Control(Object).m

-(void)reportScore:(int64_t)score forLeaderboardID:(NSString*)identifier
{
GKScore *scoreReporter = [[GKScore alloc] initWithLeaderboardIdentifier: identifier];
scoreReporter.value = score;
scoreReporter.context = 0;

NSArray *scores = @[scoreReporter];
[GKScore reportScores:scores withCompletionHandler:^(NSError *error) {

}];
}

viewcontroller.h

#import "gamecenterhelper/manager/control"

viewcontroller.m

[[gamecenterhelper/manager/control sharedInstance] reportScore:(int64_t) forLeaderboardID:(NSString*)];

//in place of int64_t place your integer you want uploaded, and instead on NNString* add your leaderboard identifier