Platform SDK: DirectX |
ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectPlay C/C++ チュートリアル」を参照すること。
ユーザーは、Memory サンプルの frmSessions フォームで、一覧に表示されたセッションに参加するか、または新しいセッションを作成するかを選択する。
いずれの場合も、手続きは同じである。セッションを DirectPlaySessionData オブジェクトに記述し、そのオブジェクトを DirectPlay4.Open に渡す。
以下のコードは、frmCreateGame の cmdCreate_Click メソッドから抜粋したものである。このコードでは、2 〜 4 人までのプレーヤーを受け入れる新しいゲームを作成する。プレーヤーの数は、オプション ボタンによって指定される。
Dim SessionData As DirectPlaySessionData Set SessionData = gObjDPlay.CreateSessionData . . . ' プレーヤー数を設定する。 If Option1.Value = True Then Call SessionData.SetMaxPlayers(2) ElseIf Option2.Value = True Then Call SessionData.SetMaxPlayers(3) Else Call SessionData.SetMaxPlayers(4) End If ' セッションの記述を終了する。 Call SessionData.SetSessionName(txtGameName.Text) Call SessionData.SetGuidApplication(AppGuid) Call SessionData.SetFlags(DPSESSION_MIGRATEHOST) ' セッションを作成 (および参加) する。 ' ユーザーがサービス プロバイダのダイアログ ボックスを ' キャンセルした場合は、失敗する。モデムの場合は、 ' これが "答え" である。 On Error GoTo FAILEDOPEN Call gObjDPlay.Open(SessionData, DPOPEN_CREATE) . . . End Sub
セッションに参加する場合は、処理が若干簡単になる。これは、frmSessions の cmdJoin_Click のように、列挙からセッション記述を取得するだけでよいからである。
Dim SessionData As DirectPlaySessionData Set SessionData = gObjDPEnumSessions.GetItem( _ lstSessions.ListIndex + 1) On Error GoTo NOSESSION Call gObjDPlay.Open(SessionData, DPOPEN_JOIN)
次項 : ステップ 4 : プレーヤーの作成