【问题标题】:How to set custom rules like difficulty level for GameCenter to find match如何为 GameCenter 设置自定义规则(例如难度级别)以找到匹配项
【发布时间】:2012-11-27 16:25:43
【问题描述】:

需要动态设置一些游戏规则,并在玩家连接之前通知可能的玩家(在 GC 搜索玩家/自动机时)这些规则。假设我想主持/开始游戏,我想设置一些投注单位的起始数量(10...1000)、难度级别(0...10)、评分系统(0..3)等。我想这就像一个表格,其中包含提供此信息的单元格,因此玩家可以决定他/她是否想加入并按照这些规则玩游戏。如何实施?
AFAIK GKMatch 在搜索玩家时仅使用最小和最大数量的玩家,仅此而已。我可以在邀请中提供此类信息,但我需要其他玩家自己寻找游戏,例如浏览现有游戏,包括规则。自游戏开始以来,我的游戏不允许加入玩家,但我需要以某种方式填补会话所需的玩家数量。就像我只想和一个玩家一起玩一样,我开始游戏时玩家数量=2(以及一些自定义规则),所以我需要 GC 来帮助我找到对面的玩家。在加入我之前,该玩家应该被告知我的规则。

【问题讨论】:

    标签: iphone ios ipad game-center


    【解决方案1】:

    你有两种可能:

    使用GKMatchRequest的这些属性:

    @property(nonatomic, assign) uint32_t playerAttributes

    指定本地玩家想要扮演的角色的掩码 玩游戏。

    如果此值为 0(默认值),则忽略此属性。 如果该值非零,则自动使用该值作为掩码 这限制了玩家在小组中可以扮演的角色。自动匹配 玩家属性遵循两个规则:

    一个新玩家只能被添加到比赛中,如果那个的按位与 球员的面具和已经在比赛中的任何球员的面具等于 0x00000000。玩家被添加到比赛中,直到 比赛中所有球员的掩码等于 0xFFFFFFFF。更多 信息,请参阅 Game Kit 编程指南。

    @property(nonatomic, assign) NSUInteger playerGroup

    标识玩家子集的数字 允许加入比赛。

    如果您的游戏设置了 playerGroup 属性,则只有 请求共享相同的 playerGroup 值由 Game 自动处理 中心。您可以为玩家组使用任何您想要的值。为了 例如,您可以定义不同的 playerGroup 值来实现 以下任何过滤器:

    游戏可以根据技能水平限制玩家。一款游戏 提供多个游戏可以使用它来过滤玩家进入 他们想玩的特定游戏。一场多胜的比赛 条件(例如,夺旗、生存)可以匹配 其他玩家对相同规则感兴趣。一个游戏,提供 通过应用内购买获得的奖励内容可以匹配拥有 内容相同。

    这允许在搜索玩家之前进行一些游戏配置。

    对于复杂的规则,您需要在找到比赛并连接球员后发送配置数据(请参阅 GKMatch API)。这里需要使用可靠传输模式。

    你也可以结合这两个想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 2019-09-11
      • 2019-12-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-27
      相关资源
      最近更新 更多