Platform SDK: DirectX

ステップ 3 : セッションの作成またはセッションへの参加

[C++]

ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectPlay C/C++ チュートリアル」を参照すること。

[Visual Basic]

ユーザーは、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 : プレーヤーの作成