0

プログラムでゲームセンターを使用してリアルタイムマルチプレイヤーゲームを作成しようとしています。inviteHandler私の問題は、古いものが廃止されたため、ドキュメントが不足していることです。

最初に行うのは認証です。

- (void) authenticateLocalPlayer
{
    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
    __weak GKLocalPlayer *blockLocalPlayer = localPlayer;
    localPlayer.authenticateHandler = ^(UIViewController *receivedViewController, NSError *error)
    {
        if (receivedViewController != nil)
        {
            [self presentViewController:receivedViewController animated:YES completion:nil];
        }
        else if (blockLocalPlayer.isAuthenticated)
        {
            [blockLocalPlayer registerListener:self];
        }
    };
}

その後、Apple ドキュメントに記載されているとおり、招待プロセスを開始します。

- (void)invitePlayers:(NSArray *)friendsArray
{
    GKMatchRequest *request = [[GKMatchRequest alloc] init];
    request.minPlayers = 2;
    request.maxPlayers = 2;
    request.playersToInvite = friendsArray;
    request.inviteMessage = @"Your Custom Invitation Message Here";
    request.inviteeResponseHandler = ^(NSString *playerID, GKInviteeResponse response)
    {
        [self updateUIForPlayer: playerID accepted: (response == GKInviteeResponseAccepted)];
    };
}

次のメソッドを実装しましたが、呼び出されることはありません。

- (void)player:(GKPlayer *)player didAcceptInvite:(GKInvite *)invite
- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray *)playerIDsToInvite

他のプレイヤーが招待を受信して​​応答できるようにするにはどうすればよいですか? アップルのドキュメントでは、古い非推奨の方法が示されています。

4

1 に答える 1

0

GKLocalPlayerこのメソッドを介して呼び出されるようにするには、まずリスナーに登録してみてください。

- (void)registerListener:(id<GKLocalPlayerListener>)listener 

これは、次のプロトコルに準拠する必要があります。GKLocalPlayerListener

于 2014-01-30T12:54:36.383 に答える