从 GKMatch 访问玩家属性

Accessing Player Attributes From GKMatch

我正在使用 Game Center 制作捉迷藏游戏。我设置了两个角色:hider和seeker

class Role
{
    static let Seeker : UInt32 = 0xFFFF0000
    static let Hider : UInt32 = 0xFFFF0000
}

我正在设置我的 GKMatchRequest 的 playerAtributes 字段。

gkMatchRequest.playerAttributes = Role.Seeker | Role.Hider

问题来了:我怎么知道哪个玩家是哪个角色?

查看 this excellent tutorial(不是 Swift,但概念相同。)

基本上你要做的是:

  1. 当比赛开始时,将他们都送到等待阶段,在那里他们生成一个随机数。
  2. 将随机数发送给对方。
  3. 检查你的随机数是否较高然后将它们设置为搜索者或隐藏者,如果它较低则相反。另一个玩家做同样的比较,所以他们应该得到相反的事件。如果出现平局(很少有机会),请重复该过程。

现在你有一个玩家被设置为捉迷藏。只需保存一个变量说明它们是什么,就大功告成了。