私はゲームセンターにまったく慣れていませんが、すでに友達を招待し、ボタンの IBAction をオンにすることができました。
ターンの管理には GKTurnbasedMatch を使用していますが、マルチプレイヤーでは、招待しているプレイヤーがカテゴリを選択したすべてのプレイヤーにカードを表示する方法を使用しています。
どうすればこれを入手できますか?
私はゲームセンターにまったく慣れていませんが、すでに友達を招待し、ボタンの IBAction をオンにすることができました。
ターンの管理には GKTurnbasedMatch を使用していますが、マルチプレイヤーでは、招待しているプレイヤーがカテゴリを選択したすべてのプレイヤーにカードを表示する方法を使用しています。
どうすればこれを入手できますか?
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 ステートメントまたは処理したいものを使用します。さまざまな種類のメッセージで。