3

私はGKSessionとGKPeerPickerControllerを使用してiOSゲームに取り組んでいます。2つのiOSデバイスを接続するプロセスは、たとえそれらが隣り合っていても、遅くて信頼性が低いことがわかりました。私のデバイスを「デバイスA」と「デバイスB」と呼びましょう。

通常は次のようになります。

  1. 各デバイスで、アプリの接続ボタンを押しました。次に、各デバイスに「iPad、iPhone、またはiPodtouchs」ウィンドウが表示されます。

  2. 通常、非常に迅速に、2つのデバイスはそれぞれもう一方が存在することに気づきます。

  3. 次に、デバイスの1つ(デバイスAなど)に他のデバイスに接続するように指示します。

  4. すぐに、デバイスBのウィンドウに、デバイスAが使用できないと表示されます。

  5. これはそれが迷惑になるところです。約1秒からまったくないまでの期間の後、デバイスAが接続を希望していることを示すウィンドウがデバイスBにポップアップし、デバイスBに接続を受け入れるかどうかを尋ねます。

  6. 上記のウィンドウがポップアップする場合は、すべてが正常に進行します。しかし、これには時間がかかることもあれば、まったく起こらないこともあります。

私は3つのデバイスを持っていますが、どちらを使用しても同様の問題が発生します。

これについて私にできることはありますか?

私の接続方法は非常に簡単です。

-(void) findPeerPickerOpponents {
    GKPeerPickerController *picker;
    picker = [[GKPeerPickerController alloc] init]; 
    picker.delegate = self;
    [picker show]; 
    [self.connectionDelegate disableIdleTimer];
}
4

2 に答える 2

0

私は完全にpeerPickerControllerをあきらめました。Apple の GKRocket のサンプル コードを確認してください。- ピアの GKSession とテーブルビューを使用します。現在、私のデバイスでは少しバグがありますが、理由ははっきりしていませんが、基本的なクラスである GameLobby と SessionManager を使用して、デバイスをうまく接続することができました。また、1 つのピアに制限されないという利点もあります。

于 2013-09-16T17:09:14.443 に答える