Game Center で招待状を実装しようとしていますが、わからないことが 1 つあります。わかりました。あるデバイスから別のデバイスに招待状を送信しました。次に、受信者に UIAlertView があり、招待を受け入れるか拒否するかを尋ねます。私がそれを受け入れると、次のように処理されます。
[GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite)
{
// Insert application-specific code here to clean up any games in progress.
if (acceptedInvite)
{
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithInvite:acceptedInvite] autorelease];
mmvc.matchmakerDelegate = self;
[presentingViewController presentModalViewController:mmvc animated:YES];
}
else if (playersToInvite)
{
GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
request.minPlayers = 2;
request.maxPlayers = 4;
request.playersToInvite = playersToInvite;
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
mmvc.matchmakerDelegate = self;
[presentingViewController presentModalViewController:mmvc animated:YES];
}
};
それは素晴らしいことですが、次は何ですか?送信側のデバイスは明らかに標準タイプの応答を待っています。「今すぐプレイ」をタップすると、まだ応答されていない招待状があることを知らせるアラートも表示されます。
では、どうすれば招待を受け入れることができるのでしょうか? どのようなデータを (どのように) 送り返す必要がありますか? そして、受信側で正確に何をすべきですか?[同意する] をタップした後、すぐにゲームを開始する必要がありますか?それとも、最初に AlertView を閉じてから [今すぐプレイ] をタップする必要がありますか?
Ray Wenderlich のチュートリアルでは、2 番目の方法を選択する必要があると書かれていますが、アラートを閉じて [今すぐ再生] をタップすると、送信側のデバイスがまだ応答を待っていることがわかり、招待を既に受け入れたことを認識していません。この時点で「今すぐプレイ」をタップすると、上で述べたように、アプリケーションが応答を待っていることを示すアラートが表示されます。それで、あなたがそれをしたことがあるなら、私が何をすべきかを説明してください. ありがとう!