Microsoft DirectX 8.0 (C++)

プレーヤー コンテキスト値の定義

プレーヤー コンテキスト値を使用するには、使用中のシステムに、個々のプレーヤーに対応するデータ ブロックを、通常は構造体の形で保持する必要がある。プレーヤー コンテキスト値は、通常、各種プレーヤーのデータ ブロックを指すポインタ配列のインデックスである。プレーヤーからメッセージを受け取ったとき、テーブル内のプレーヤー ID を検索するといった時間のかかる処理をしないで済む。プレーヤー コンテキスト値に格納されたインデックスを使用すると、必要なポインタをすばやく取得できる。

プレーヤー コンテキスト値は、ゲームにプレーヤーが追加されたことを通知する DPN_MSGID_CREATE_PLAYER メッセージを処理するときに定義する。ホストも、DPN_MSGID_INDICATE_CONNECT メッセージを処理するときに、プレーヤー コンテキスト値を定義することがある。次の DPN_MSGID_CREATE_PLAYER メッセージには、そのプレーヤー コンテキスト値が設定される。ホストは、そのメッセージを処理するときに、プレーヤー コンテキスト値を変更できる。プレーヤー コンテキスト値を作成するには :

Microsoft® DirectPlay® では、データを取得して構造体に代入する方法が指定されていない。その問題は、個々のゲームで独自の方法により処理すること。

  プレーヤー コンテキスト値は、DPN_MSGID_CREATE_PLAYER または DPN_MSGID_INDICATE_CONNECT メッセージ ハンドラ内でのみ定義できる。DPN_MSGID_CREATE_PLAYER メッセージ ハンドラから復帰すると、プレーヤー コンテキスト値が設定される。そのプレーヤーに関連する以降の各メッセージのプレーヤー コンテキスト値は、DPN_MSGID_CREATE_PLAYER メッセージ ハンドラが設定した値と等しい。関連するデータ構造体の内容は修正できるが、プレーヤー コンテキスト値自体は変更できない。