1

2 人のプレーヤーが同じシーンにいる場合、それらを招待することができ、受け入れたときにプレーヤー リストに追加されます。

私が機能していないことと、その方法がわからないのは、1 人のプレーヤーがアプリになく、他のプレーヤーがCCScenes の 1 つから招待要求を送信しているアプリにいるときに、適切なシーンをロードすることです。

これを行う方法があるかどうか、またはそれが最善の方法であるかどうかはわかりません。これについての私の考えは、プレイヤーを招待している人がいるシーンの名前を、招待ハンドラーを介して招待している人に送信したいということです。didFinishLaunchingWithOptionsそれらがアプリにない場合は、何らかの方法でアプリケーションに情報を送信する必要があると思いますが、アプリにある場合は、他の場所でそれを処理する必要があります。私はどこでも検索してきましたが、何も見つかりませんでした。これを行う方法、またはそれを行うより良い方法を知っていれば、私はあなたの助けに大いに感謝します.

招待ハンドラーに使用するコードは次のとおりです。

[GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite) {
    UIViewController *topLevelViewController = self.presentingViewController;
    bool isInviter = NO;

    if (acceptedInvite) {
        isInviter = NO;
        GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithInvite:acceptedInvite] autorelease];
        mmvc.matchmakerDelegate = self;

        if ([topLevelViewController modalViewController] != nil)
            [topLevelViewController dismissModalViewControllerAnimated:NO];

        [topLevelViewController presentModalViewController:mmvc animated:YES];
    } else if (playersToInvite) {
        isInviter = NO;
        GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
        request.minPlayers = 2;
        request.maxPlayers = 2;
        request.playersToInvite = playersToInvite;

        GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
        mmvc.matchmakerDelegate = self;

        if ([topLevelViewController modalViewController] != nil)
            [topLevelViewController dismissModalViewControllerAnimated:NO];

        [topLevelViewController presentModalViewController:mmvc animated:YES];
    }
};
4

0 に答える 0