AppWizard
AppWizard
Microsoft® DirectX® AppWizard は、DirectX の共通のコンポーネントと統合できる小規模な C++ テンプレート アプリケーションを作成する。これらのコンポーネントは、Microsoft Direct3D®、Microsoft DirectInput®、Microsoft DirectMusic®、Microsoft DirectSound®、および Microsoft DirectPlay® である。これにより、作成が簡単な基本的な機能が得られると共に、各コンポーネントの使い方がわかる。
AppWizard には、テンプレートの他にも、DirectX ソフトウェア開発キット (SDK) の共通ディレクトリにあるのと同じ C++ クラスが含まれている。これらの C++ クラスは、ユーザーがすぐに開発を開始できるように、DirectX の最小ラッピングを実行できる。すべての DirectX SDK サンプルは、これらのクラスを使っている。たとえば、Direct3D サンプルは D3dapp.*、DirectMusic サンプルは Dmutil.*、DirectSound サンプルは Dsutil.*、DirectPlay サンプルは Netconnect.* をそれぞれ使っている。
AppWizard の対象ユーザーは、アマチュアの C++ ゲーム開発者、3D を趣味とするユーザー、およびオーディオを趣味とするユーザー (3D を必要としないユーザー) である。
AppWizard の実行
AppWizard は、新しいプロジェクトを作成するときに Microsoft Visual Studio® 6.0 から起動する。次の例に示すように、AppWizard は、[ファイル] メニューの [新規作成] をクリックし、[プロジェクト] タブをクリックしたときに利用できるプロジェクト タイプの 1 つである。
プロジェクト名を入力して [OK] をクリックすると、一連のダイアログ ボックスが表示され、アプリケーションで必要な DirectX サービスを設定できる。ウィザードが生成するダイアログ ボックスの数は、選択する DirectX テクノロジによって異なる。Direct3D、DirectInput、および DirectPlay は、それぞれ独自のダイアログ ボックスを生成する。プロジェクトに含まれるファイルは、選択した DirectX テクノロジに加えて、Microsoft Windows® テクノロジによって選択された Microsoft Win32®、Microsoft Foundation Classes (MFC)、および Graphics Device Interface (GDI) によっても異なる。次の例に示すように、これらのテクノロジはウィザードの最初のページで選択する。
このウィザードには 3 つのステップがある。ステップ 1 は最初のページ、ステップ 2 は [Direct3D] ページ、ステップ 3 は [DirectInput] ページである。[DirectMusic] および [DirectSound] オプションを選択しても追加のページは生成されないが、[DirectPlay Peer-to-Peer] オプションを選択すると追加のページが生成される。
ウィザードは、ユーザーが選択するオプションに基づいて、4 つのベース テンプレートのうち 1 つを使う。
- MFC ベースでなく、Direct3D を使うアプリケーションでは、[Single document window] および [Direct3D] を選択する。これは標準的なケースであり、Dolphin VS サンプルで使われるアプリケーションと同様である。
- MFC ベースであり、Direct3D を使うアプリケーションでは、[MFC dialog based] および [Direct3D] を選択する。このアプリケーションは MFC Fog サンプルと同様である。
- GDI を使うが MFC を使わない Microsoft® Windows® アプリケーションでは、[Single document window] を選択する。このアプリケーションは、アイドル時に [CreateWindow] および基本的な [GameLoop] を使える。
- MFC ベースであり、GDI を使うアプリケーションでは、[MFC dialog based] を選択する。アプリケーションは MFC AppWizard ダイアログ テンプレートと同様になる。
[Direct3D]、[DirectInput]、および [DirectPlay] の各チェック ボックスをオンにすると、いずれもウィザードに別のページが追加される。これらのページについては、以下で説明する。
[Direct3D] ページ
ステップ 1 で [Direct3D] チェック ボックスをオンにした場合、最初のページのすぐ後に、次の [Direct3D] ページが表示される。
ステップ 1 はウィザードの最初のページであるため、[Direct3D] ページはステップ 2 となる。
Direct3D 専用のオプションには、次のものがある。
- [Blank]。Direct3D オブジェクトは作成されない。
- [Triangle]。連続した三角形のある単純なオブジェクトを作成する。
- [Teapot]。D3DXCreateTeapot を使って複雑なオブジェクトを作成する。
[Direct3D fonts] チェック ボックスをオンにした場合は、プロジェクトには D3dfont.cpp および D3dfont.h が含まれる。そうでない場合は、D3DXCreateFont を使って 3D フォントが表示される。
[3D meshes] チェック ボックスをオンにした場合は、プロジェクトには D3dfile.cpp および D3dfile.h が含まれる。
[DirectInput] ページ
ステップ 1 で [DirectInput] チェック ボックスをオンにした場合、Direct3D ページのすぐ後に、次の [DirectInput] ページが表示される。
[DirectInput] ページはステップ 3 である。このページのオプションには次のものがある。
- [DirectInput action mapping]。「チュートリアル 5 :アクション マップの使い方」を使って入力データを収集する。
- [DirectInput keyboard device]。簡単な DirectInput デバイスを使って入力データを収集する。
ステップ 1 で [DirectInput] チェック ボックスをオンにした場合、プロジェクトには Diutil.cpp および Diutil.cpp ファイルが含まれる。DirectX SDK サンプルである (SDK ルート)\Samples\bin\Donut3D.exe は、これらのクラス ファイルを使う。
アプリケーションはアクション マッパーまたはキーボード デバイス オブジェクトを使って、キーの状態を記録する。これらのいずれもオンにしない場合、WM_KEYDOWN メッセージを使ってキーの状態が記録される。
[DirectMusic] および [DirectSound] チェック ボックス
これらのチェック ボックスは、ウィザードのページ 1 に表示される。これらのチェック ボックスをオンにしても、ウィザードにページは追加されない。
[DirectMusic] チェック ボックスをオンにすると、プロジェクトには Dmutil.cpp および Dmutil.h が含まれる。DirectMusic サンプルはこれらのファイルを使う。
[DirectSound] チェック ボックスをオンにすると、プロジェクトには Dsutil.cpp および Dsutil.h が含まれる。DirectSound サンプルはこれらのファイルを使ってサウンドをロードし、再生する。
[DirectMusic] および [DirectSound] チェック ボックスを両方ともオンにすると、DirectMusic を使ってサウンドがロードされ、再生されるが、プロジェクトには Dsutil.* が含まれる。
[DirectMusic] または [DirectSound] のいずれかのチェック ボックスをオンにすると、Bounce.wav がプロジェクトに含まれる。A キーを押すと、サウンドが再生される。
[DirectMusic] および [DirectSound] チェック ボックスを両方ともオフにすると、Bounce.wav は含まれず、A キーは記録されない。また、ヘルプの文字列も表示されない。
[DirectPlay] ページ
ステップ 1 で [DirectPlay Peer-to-Peer] チェック ボックスをオンにした場合、[DirectInput] ページのすぐ後に、次の [DirectPlay] ページが表示される。
ステップ 1 はウィザードの最初のページ、ステップ 2 は [Direct3D] ページ、ステップ 3 は [DirectInput] ページとすると、[DirectPlay] ページはステップ 4 になる。
[DirectVoice] チェック ボックスをオンにすると、プロジェクトには Netvoice.cpp および Netvoice.h が含まれる。DirectPlay Voice サンプルはこれらのファイルを使う。
プロジェクトは [NetConnect DirectPlay connection] ダイアログ ボックスをアプリケーションに統合する。[NetConnect] ダイアログ ボックスが終了すると、DirectPlay 接続が成功するか、失敗する。接続に成功した場合、DirectPlay を使ってすべてのプレーヤ間で方向キーの状態が渡される。
DirectInput アクション マッパーを使う場合、DirectPlay はネットワークに軸データを送信する。使わない場合、4 つの方向キーの状態を送信する。