使用游戏中心向所有玩家显示相同的牌

时间:2012-12-01 05:19:09

标签: iphone objective-c ios xcode game-center

我是游戏中心的新手,我已经成功邀请了朋友并管理按钮的IBAction。

我正在使用GKTurnbasedMatch来管理转弯但是对于多人游戏如何向所有被邀请的玩家选择类别的玩家展示卡片。

我怎么会得到这个?

1 个答案:

答案 0 :(得分:1)

这是关于Gamecenter /回合制的一个很棒的教程:

http://www.raywenderlich.com/5509/beginning-turn-based-gaming-with-ios-5-part-2

特别是这部分:

  

如果我们发现lastTurn为null,我们将假设我们正在处理   一个新的匹配,否则我们假设我们已经有matchData   我们将要处理的。所以打开GCTurnBasedMatchHelper.m和   替换didFindMatch方法如下:

-(void)turnBasedMatchmakerViewController: 
  (GKTurnBasedMatchmakerViewController *)viewController 
  didFindMatch:(GKTurnBasedMatch *)match {
    [presentingViewController 
      dismissModalViewControllerAnimated:YES];
    self.currentMatch = match;
    GKTurnBasedParticipant *firstParticipant = 
      [match.participants objectAtIndex:0];
    if (firstParticipant.lastTurnDate) {
        NSLog(@"existing Match");
    } else {
        NSLog(@"new Match");
    }
}

你想要做的是,每回合都将所有数据发送给所有玩家,所以当玩家第一次去(和交易)时,他们应该将手发送给所有玩家。当他们不处理时,您不必发送所有数据,因此您可以发送不同类型的消息。发送信息:

BOOL success = [[GameCenterManager sharedInstance].Match sendDataToAllPlayers:data  withDataMode:GKMatchSendDataReliable error:&error];

只要确保数据有一个类型,这通常是消息的第一个字节,然后在客户端,读取第一个字节以确定它是什么类型的消息,然后使用switch语句或任何你喜欢处理不同类型的消息。