を使用して、GameKit でローカル マッチメイキングを機能させようとしてい[[GKMatchmaker sharedMatchmaker] startBrowsingForNearbyPlayersWithReachableHandler:]
ます。基本的に、私はインターフェイスのないローカル マッチを実装しようとしています。ローカルの近くにプレイヤーがいる限り、接続してマッチを開始したいと考えています。重要なことは、これをローカル プレイヤーに対してのみ実行したいということです。インターネット経由で自動的にマッチングすることは絶対にしたくありません。
iTunes Connect でアプリの Game Center を有効にし、テストに使用するすべてのデバイスで別のサンドボックス アカウントにサインアップしました。
GKMatchmakerViewController
でのマッチメイキング(ローカル プレイヤーの認証後) と でのプログラムによるマッチメイキングの両方を試しましstartBrowsingForNearbyPlayersWithReachableHandler:
た。同じコードを iPhone 4 と第 4 世代の iPod Touch を机の上に並べて実行しました。どちらも相手を見つけることはありません。GKMatchmakerViewController
近くのプレイヤーを見つけるためにインターフェースを使用するときは、
プレイヤーを探しています...
スピナー、および を使用するstartBrowsingForNearbyPlayersWithReachableHandler:
場合、通知ブロックが呼び出されることはありません。
テストコードの現在のブロックは次のとおりです。
-(void)connectLocal
{
if( ![GKLocalPlayer localPlayer].isAuthenticated )
{
// authenticateLocalPlayer calls connectLocal again after authentication is complete
[ self authenticateLocalPlayer ];
return;
}
[[GKMatchmaker sharedMatchmaker] startBrowsingForNearbyPlayersWithReachableHandler:^(NSString *playerID, BOOL reachable) {
NSLog(@"Reachability changed for player %@", playerID );
} ];
}
ドキュメントは、特にローカルのマルチプレイヤーとインターネット経由の対戦の違いに関しては、少しまばらで混乱を招きます。たとえば、マッチに参加するプレイヤーを見つける前に、ローカル プレイヤーを認証してマッチを作成する必要があるようです (任意の種類のマッチの作成はマッチ リクエストで開始します)。ただし、この小さなナゲットは別のことを示唆しているようです:
標準のユーザー インターフェイスにより、どちらのプレイヤーも現在 Game Center に直接接続していない場合でも、プレイヤーは近くにいる他のプレイヤーを見つけることができます。
さらに、近くのプレイヤーを検索する で説明されているフローでは、 に渡された通知ブロックを介してプレイヤーを見つけた後、ステップ 3 までマッチ リクエストは作成されませんstartBrowsingForNearbyPlayersWithReachableHandler:
。残念ながら、私はそこまで到達したことはありません。
だから、質問:
startBrowsingForNearbyPlayersWithReachableHandler:
1)ローカル プレイヤーを認証する前に呼び出すことができると考えるのは正しいですか? GameKit はエラーをスローしないので、問題ないと思います。これは無謀な仮定かもしれません。私が認証するかどうかは、あまり違いがないようです。
2) を使用してローカル自動マッチングを正常に実装した人はい[GKMatchmaker sharedMatchmaker] startBrowsingForNearbyPlayersWithReachableHandler:
ますか? プレイヤーのブラウジングから試合の開始まで、すべてプログラムによって完全なフローを示す良いサンプル コードはありますか?
3) iOS シミュレーターで GameKit 対応アプリをテストできるかどうかについて、ウェブ上で相反する報告があるようです。一般的なコンセンサスはそうではないようで、iOS ハードウェアでテストすることをお勧めします。iPhone 4 と第 4 世代の iPod Touch を使用しています。ローカル マルチプレイヤーのテストに成功した人のために、どのようなテスト セットアップと方法論を使用しましたか?