3

私はゲームセンターにまったく慣れていませんが、すでに友達を招待し、ボタンの IBAction をオンにすることができました。

ターンの管理には GKTurnbasedMatch を使用していますが、マルチプレイヤーでは、招待しているプレイヤーがカテゴリを選択したすべてのプレイヤーにカードを表示する方法を使用しています。

どうすればこれを入手できますか?

4

1 に答える 1

2

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 ステートメントまたは処理したいものを使用します。さまざまな種類のメッセージで。

于 2012-12-01T05:36:31.093 に答える