次の方法で共有


ChatPeer

ChatPeer

ChatPeer サンプルは、SimplePeer と類似した形式である。プレーヤがセッションのホストとなるか、またはセッションに接続すると、文字列の受け渡しによってプレーヤどうしがチャットできるようになる。

パス

ソース ファイル : (SDK ルート)\Samples\C++\DirectPlay\ChatPeer

実行可能ファイル :(SDK ルート)\Samples\C++\DirectPlay\Bin

ユーザーズ ガイド

プレーヤの名前を入力し、接続の種類を選択する。[Wait for Lobby Connection] またはサービス プロバイダを選択できる。[Multiplayer Games] ダイアログ ボックスを使って、参加するアクティブなゲームの検索または新しいゲームの開始ができる。ゲームに参加するとき、またはゲームを開始するときは、すぐに開始できる。他のプレーヤは、いつでもゲームに参加できる。ホストの移行がオンになっている場合、Microsoft® DirectPlay® が自動的にホスト セッションを他のプレーヤに移行するため、ホスト プレーヤはいつでもゲームを抜けられる。

  Internetwork Packet Exchange (IPX) サービス プロバイダを選んだ場合、DirectPlay にアドレスの検索を実行させるには、[use DPNSVR] チェック ボックスをオンにする。

プログラミング上の注意

ChatPeer サンプルは、SimplePeer と非常に似た形式である。ChatPeer で異なるのは、セッションに接続したすべてのプレーヤに対して、クライアントが文字列を送信できるようにしていることである。詳細なプログラミング上の注意については、SimplePeer サンプルの「プログラミング上の注意」を参照すること。

[Send] をクリックすると、SendChatMessage 関数は次の処理を実行する。

  1. ダイアログ ボックスから文字列を取得する。
  2. アプリケーション定義の構造体である GAMEMSG_CHAT に情報を格納する。この構造体は、最初の BYTE にメッセージ タイプ識別子 (ID) を持つ。アプリケーションは、この情報から、受信したアプリケーション メッセージの種類を確認できる。ただし、ChatPeer で使うアプリケーション定義メッセージは 1 つだけである。この処理の複雑な例については、「StagedPeer」を参照すること。
  3. GAMEMSG_CHAT バッファを使って DPN_BUFFER_DESC 構造体に情報を格納する。
  4. DPN_BUFFER_DESC を使って IDirectPlay8Peer::SendTo を呼び出す。このメッセージが全員に送信されるように、DPNID_ALL_PLAYERS_GROUP フラグを渡す。