3

MatchmakerViewController から GKMatchmaker に切り替えると、別々のデバイス (両方とも iPhone 5s) で実行されている 2 つのサンドボックス ゲーム センター アカウントが同じマッチに接続しなくなりました。どちらも expectedPlayerCount が 0 を超えていることを示しています。

ゲーム センターを使用したマルチプレイヤー ゲームの作成に関する RayWenderlich チュートリアルに従いました。それはリアルタイムであるはずであり、そのように機能していました。GKMatchmakerViewController を使用すると、すべてが完全に正常に機能しました (自動マッチングと招待の両方)。ただし、コードのブロックを 1 つ切り替えるとすぐに機能しなくなります。私はこれをしばらくいじっていましたが、アップルのドキュメントはまったく役に立たないようです。私がさらに何をする必要があるか知っている人はいますか?

func findMatchWithMinPlayers(minPlayers: Int, maxPlayers: Int, viewController: UIViewController, delegate: GameKitHelperDelegate) {

    if enableGameCenter == false {
        return
    }

    matchStarted = false
    gkMatch = nil
    gkDelegate = delegate
    viewController.dismissViewControllerAnimated(false, completion: nil)

    var request = GKMatchRequest()
    request.minPlayers = minPlayers
    request.maxPlayers = maxPlayers

    if pendingRecipients != nil {
        request.recipients = pendingRecipients!
    }

    GKMatchmaker.sharedMatchmaker().findMatchForRequest(request, withCompletionHandler: { (match: GKMatch!, error: NSError!) -> Void in

        self.gkMatch = match
        self.gkMatch?.delegate = self
        println(match)
        if self.matchStarted == false && match.expectedPlayerCount == 0 {
            self.lookupPlayers()
        }
    })
}

これと機能していたものの唯一の違いは、これには GKMatchmakerViewController と Delegate の代わりに GKMatchmaker があることです。

4

0 に答える 0