2

2 つの iPhone/iPod が Bluetooth 経由で相互に接続してプレイできる GameKit Framework を使用して、マルチプレイヤー ゲームを作成しました。

どのデバイスが最初にプレイできるようになるかを選択する方法を考えています。したがって、論理的な解決策は、接続のホストを選択することです。GKSession にはサーバーとクライアントさえありますか? 彼らはすべて同輩ですか?必要なものを達成するには、どのルートをたどればよいでしょうか?

4

1 に答える 1

6

基本的に、セッションを好きなように構成するのはあなた次第です。

アップルのドキュメントから:

セッションは、セッションの初期化時に設定されたセッション モードに基づいて、ネットワーク上の他のピアを検出します。アプリケーションは、ネットワーク上でサービス タイプをアドバタイズするサーバーになるようにセッションを構成できます。広告サーバーを検索するクライアント。または、サーバーのようにアドバタイズし、同時にクライアントのように検索するピア。

サーバーとして機能するアプリケーションのコピーは、initWithSessionID:displayName:sessionMode: を GKSessionModeServer または GKSessionModePeer のいずれかのセッション モードで呼び出して、セッションを初期化します。アプリケーションは、セッションを構成した後、セッションの isAvailable プロパティを YES に設定してサービスを通知します。

クライアントとして機能するアプリケーションのコピーは、initWithSessionID:displayName:sessionMode: を GKSessionModeClient または GKSessionModePeer のいずれかのセッション モードで呼び出すことにより、セッションを初期化します。セッションを構成した後、アプリケーションは、セッションの isAvailable プロパティを YES に設定することにより、広告サーバーをネットワークで検索します。セッションが GKSessionModePeer セッション モードで構成されている場合、上記のように、それ自体をサーバーとしてアドバタイズします。

したがって、GKSessionModePeer を使用してセッションを初期化すると、ピアができます (サーバーとクライアントの両方として機能します)。サーバーとそのクライアントを区別する場合は、GKSessionModeServer で初期化します。

敬具。

于 2009-06-24T13:35:45.023 に答える