【问题标题】:GameCenter turn based matchmakingGameCenter 回合制配对
【发布时间】:2014-03-04 23:48:01
【问题描述】:

我对 GameCenter 的回合制功能有疑问。该应用程序的免费版本将允许用户一次最多创建 3 场比赛,并且会阻止任何创建自动比赛或邀请其他玩家的尝试。我的问题如下,如果一个没有创建匹配限制的玩家邀请另一个达到该限制的玩家,游戏就会发生,这不是我想要的。

我可以为达到比赛限制的玩家设置任何属性吗?我知道如果不满足条件,我可以创建匹配并断开玩家的连接,但这也是我非常想避免的事情。

【问题讨论】:

    标签: ios xcode game-center gkturnbasedmatch


    【解决方案1】:

    Game Center 本身不支持限制可用比赛的数量。但是,要强制执行限制,您也不需要创建然后删除匹配项。

    跟踪您游戏中的活跃比赛数量。当玩家达到限制时,停止显示匹配 UI(例如,您的“新匹配”按钮可能会开始显示消息框,而不是显示匹配视图控制器)。看看 Letterpress 是如何做到的 - 当您在免费版本中有 2 个活动游戏时,“+”按钮会提示您购买免费版本。如果您有 1 个或 0 个活动游戏,它会显示匹配视图控制器。

    不过,Letterpress 似乎有一个疏忽 - 可以打开 Game Center 并从那里请求匹配。 Game Center 应用会打开 Letterpress,然后会显示配对界面并允许您开始比赛。

    也许这可以通过注册GKLocalPlayerListener 来避免。实现player:didRequestMatchWithPlayers: 方法,看看是否可以从那里显示“购买完整版”提示。

    【讨论】:

      【解决方案2】:

      playerGroup 属性可能会对您有所帮助。 创建匹配请求时,可以设置属性 playerGroup 以限制仅组中的玩家连接到同一组中的玩家。

      GKMatchRequest *request = [[GKMatchRequest alloc] init];
      request.minPlayers = 2;
      request.maxPlayers = 4;
      request.playerGroup = MyMap_Dark | MyRulesCaptureTheFlag;
      

      如果您的游戏设置了 playerGroup 属性,则只有请求共享相同 playerGroup 值的玩家才会被 Game Center 自动匹配。玩家组的值是任意的。例如,您可以定义不同的 playerGroup 值来实现以下任何过滤器:

      游戏可以根据技能水平限制玩家。提供多种游戏模式的游戏可以使用它将玩家过滤到他们想要玩的特定游戏中。通过应用内购买提供奖励内容的游戏可以匹配拥有相同内容的玩家。

      将 playerGroup 设置为 0 或根本不设置意味着该比赛没有玩家组,因此任何人都可以连接到任何人。 也请阅读此游戏中心指南https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/ImplementingaTurn-BasedMatch/ImplementingaTurn-BasedMatch.html

      希望这会对你有所帮助。

      【讨论】:

        【解决方案3】:

        不幸的是,Game Center 的匹配 API 中没有任何内容来限制玩家正在玩的比赛数量。您也无法阻止已达到游戏内限制的人直接进入 Game Center 并在那里创建一场比赛,这完全绕过了你的游戏限制。

        【讨论】:

        • 如何直接从 Game Center 应用开始比赛?我认为这只能通过游戏来完成(通过显示匹配视图控制器或以编程方式)。
        • @leolobato 打开游戏中心并选择游戏选项卡。点击一个游戏。它将显示已安装它的朋友列表。单击其中一个,Game Center 将启动您的应用并触发 player:didRequestMatchWithPlayers: 事件 (developer.apple.com/library/ios/documentation/GameKit/Reference/…)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-21
        • 1970-01-01
        相关资源
        最近更新 更多