6

マルチプレイヤーを実装しようとしています。GameCenterのサンプルを使用する-データの送受信

すべて問題ないようですが、Appleのドキュメントには、招待ハンドラーについても記載されています。

[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;
        [self 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;
        [self presentModalViewController:mmvc animated:YES];
    }
};

問題は非常に単純です。このコードをどこに追加すればよいかわかりません。

4

2 に答える 2

11

ドキュメントに記載されているように

アプリケーションの起動後、できるだけ早く招待ハンドラを設定する必要があります。ハンドラーを設定する適切な場所は、ローカル プレーヤーが認証された後に実行される、指定した完了ブロックです。

コードのどこかで、次のような方法でローカル プレーヤーを認証する必要があります。

[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) {
    if (error == nil) {
        // Insert your piece of code here
    } else {
        // Handle the error
    }
}];

それが役立つことを願っています

于 2011-01-09T13:25:35.827 に答える