1

Bluetooth 接続に GameKit を使用して作成しようとしているゲームに必要な基本的な手順を理解しようとしています。デバイスが 1 つしかないため、アイデアを簡単に試すことができません。

このゲームには、GameKit を介して Bluetooth 経由で最大 2 人のプレイヤーが参加し、送受信する唯一のデータは、位置と方向のデータのみを含む「ショット」です。

これは私が起こるべきだと思うことです。私が犯した間違いを誰かに指摘してもらいたいだけです:

  • ゲームは、GKPeerPickerController に「GKPeerPickerConnectionTypeNearby」の connectionTypeMask を提示し、デリゲートを「self」に設定することから始まります。

  • GKPeerPickerController デリゲート メソッド「peerPickerController:didConnectPeer:toSession:」が実装され、セッション dataReceiveHandler を self に設定します。peerID は、接続されているすべてのピア ID を保持する NSMutableArray に追加されます。(常に 1 つのピアのみが接続されている必要があります)。

  • ゲームごとに 1 つのピア接続のみを強制するために、メソッド「session:didReceiveConnectionRequestFromPeer:」は、接続されたピア ID を保持する NSMutableArray の「count」プロパティをチェックします。「count」>0 の場合は、「denyConnectionFromPeer:」を呼び出して応答します。それ以外の場合は、「acceptConnectionFromPeer:error:」を呼び出します。

  • ショットを送信するために、ゲームは「sendData:toPeers:withDataMode:error:」を呼び出します。

  • ショットを受信するために、ゲームは「receiveData:fromPeer:inSession:context:」に応答します。

不足している手順はありますか? たとえば、私が接続する前にユーザーが私に接続しようとした場合、私の GKPeerPickerController はどうなりますか? それを却下する方法をどうやって知ることができますか?

また、別の iPhone/iPod がなければテストできません。

4

1 に答える 1

3

まず、GamekitでBluetoothをテストする場合は、実際には2番目のデバイスが必要になります。アプリを真剣に考えている場合は、GameKitBluetoothをサポートする安価な/再生されたiPhoneまたはiPodTouchを購入してみてください(最も古いデバイスではサポートされていません)。実際には、テスト用に2台のMacを使用した方がうまくいくと思いますが、2台目のMacをまだ持っていない場合は、高価な提案になります。

上に投稿した内容はほぼ正しいです。実際にPeerPickerを使用するのは非常に簡単であり、Appleのドキュメントを使用して簡単に理解できるはずです。問題は、私の経験では、それが少しぎくしゃくしているということです。テストに3GSと3Gを使用していて、内部にBluetoothが異なることが原因である可能性がありますが、概要を説明したシナリオが発生したときに、「ユーザーが接続する前に接続しようとすると、奇妙なことがよく見られます。彼らへ。" 結局、それは通常はまだ機能しますが、待機の少しのオーバーヘッドがなく、おそらくユーザーはプロセスを1、2回繰り返さなければなりません。

于 2010-03-10T13:47:28.237 に答える