3

我对游戏中心完全陌生,我已经设法邀请朋友并管理打开按钮的 IBAction。

我正在使用 GKTurnbasedMatch 来管理回合,但对于多人游戏,如何向邀请的玩家选择类别的所有玩家显示卡片。

我怎么得到这个?

4

1 回答 1

2

这是关于 Gamecenter / 回合制的精彩教程:

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

特别是这部分:

如果我们发现 lastTurn 为空,我们将假设我们正在处理一个新的匹配,否则我们将假设我们已经有我们将要处理的 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 语句或任何你喜欢的处理与不同类型的消息。

于 2012-12-01T05:36:31.093 回答