【问题标题】:Game Center Integration for iPhone game?iPhone游戏的游戏中心集成?
【发布时间】:2014-01-11 19:12:33
【问题描述】:

我是开发 IOS 应用程序(主要是游戏)的初学者。我已完成游戏并已将其提交到应用商店。在未来,我想提交一个更新,其中将包括游戏中心,主要是分数排行榜(所有时间、每月、每周和今天)。我无法理解如何将已完成的游戏与游戏中心集成。我不清楚的另一部分是我在代码中写了什么以及gamekit框架如何知道将哪个数字(分数)提交给游戏中心。如果有人能提供详细信息,我将不胜感激。谢谢!

【问题讨论】:

    标签: iphone ios game-center


    【解决方案1】:

    这里有一个示例项目

    http://developer.apple.com/library/ios/#samplecode/GKTapper/Introduction/Intro.html

    发送分数你有这个功能,score是分数,category是你在itunes connect上配置的排行榜的名称。

    - (void) reportScore: (int64_t) score forCategory: (NSString*) category {
    
    GKScore *myScoreValue = [[[GKScore alloc] initWithCategory:category] autorelease];
    myScoreValue.value = score;
    
    [myScoreValue reportScoreWithCompletionHandler:^(NSError *error){
        if(error != nil){
            NSLog(@"Score Submission Failed");
        } else {
            NSLog(@"Score Submitted");
        }
    
    }];
    }
    

    玩家被杀时必须使用这个函数发送分数,你不必跟踪是否已经最高,但你可以跟踪它是否大于0;

    本教程使用自己项目中的示例项目功能,看一下,包括发送点和成就

    http://maniacdev.com/2011/05/tutorial-game-center-basics-leaderboards-and-achievements/

    【讨论】:

    • 非常感谢!不幸的是,stackoverload 不会让我投票。
    • 我编辑了答案,不是更简单一点。你不能投票,但我想你可以接受答案
    • 非常感谢您的帮助。现在它比以前清晰 100 倍。
    【解决方案2】:

    Game Center 从 iOS SDK 4.1 开始可用

    1) 打开 Xcode 帮助。

    2) 在顶部,您应该会看到一个导航栏,其中应显示“文档”部分,然后将鼠标移动到显示“iOS 5.1 库”的位置(在我的情况下)。

    3) 现在,将鼠标移到“网络和互联网”上并点击它。

    4) 您现在应该有一个可用 API 的列表。

    然后四处寻找您想要的 API,例如排行榜成就。 根据您的要求,您应该查找诸如 GKLeaderboards 之类的内容以及您感兴趣的任何其他内容。这些文档应该链接到您需要的其他文档。你可以找到GKLeaderboards documentation on web

    编辑:您开发的游戏会在每个游戏实例之后向玩家显示一些分数。将该分数发布到函数- (void) reportScore: (int64_t) score forCategory: (NSString*) category,例如。 [self.gameCenterManager reportScore:yourscore forCategory: @"yourgamecategory"];

    来自此链接的 GameCenterManager.h 和 GameCenterManager.m

    【讨论】:

    • 好的,这有帮助。我最大的误解是实际游戏如何知道将哪个分数发送到游戏中心?比如你在发送分数的代码中写了什么。例如,当我在游戏中的角色被杀时,会出现一个显示最终得分的屏幕。在这个源文件中我应该放什么来发送那个分数?
    • forCategory 部分的用途。是否适用于今天、周、月、年等不同的排行榜
    • 查看LeaderBoard Documentation下的排行榜类别
    • 非常感谢!我想我现在明白了。
    • 它不允许我。我试图投票,但它说我需要 15 个“代表”。我知道那是什么
    【解决方案3】:

    使用此例程将分数更新到游戏中心。

    - (void) reportScore: (int64_t) score   :(NSString*) YOUR_LeaderBoard_ID
    {
        GKScore *scoreReporter = [[GKScore alloc] initWithCategory:YOUR_LeaderBoard_ID];
        scoreReporter.value = score;
        scoreReporter.context = 0;
        [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
            if (error != nil)
            {
                IsConnectFail = true;
            }else{
                IsConnectFail = false;   
            } 
        }]; 
    }
    

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多