次の方法で共有


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) によっても異なる。次の例に示すように、これらのテクノロジはウィザードの最初のページで選択する。

ステップ 1 :

このウィザードには 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] ページが表示される。

ステップ 2 :

ステップ 1 はウィザードの最初のページであるため、[Direct3D] ページはステップ 2 となる。

Direct3D 専用のオプションには、次のものがある。

  1. [Blank]。Direct3D オブジェクトは作成されない。
  2. [Triangle]。連続した三角形のある単純なオブジェクトを作成する。
  3. [Teapot]。D3DXCreateTeapot を使って複雑なオブジェクトを作成する。

[Direct3D fonts] チェック ボックスをオンにした場合は、プロジェクトには D3dfont.cpp および D3dfont.h が含まれる。そうでない場合は、D3DXCreateFont を使って 3D フォントが表示される。

[3D meshes] チェック ボックスをオンにした場合は、プロジェクトには D3dfile.cpp および D3dfile.h が含まれる。

[DirectInput] ページ

ステップ 1 で [DirectInput] チェック ボックスをオンにした場合、Direct3D ページのすぐ後に、次の [DirectInput] ページが表示される。

ステップ 3 :

[DirectInput] ページはステップ 3 である。このページのオプションには次のものがある。

ステップ 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] ページが表示される。

ステップ 4 :

ステップ 1 はウィザードの最初のページ、ステップ 2 は [Direct3D] ページ、ステップ 3 は [DirectInput] ページとすると、[DirectPlay] ページはステップ 4 になる。

[DirectVoice] チェック ボックスをオンにすると、プロジェクトには Netvoice.cpp および Netvoice.h が含まれる。DirectPlay Voice サンプルはこれらのファイルを使う。

プロジェクトは [NetConnect DirectPlay connection] ダイアログ ボックスをアプリケーションに統合する。[NetConnect] ダイアログ ボックスが終了すると、DirectPlay 接続が成功するか、失敗する。接続に成功した場合、DirectPlay を使ってすべてのプレーヤ間で方向キーの状態が渡される。

DirectInput アクション マッパーを使う場合、DirectPlay はネットワークに軸データを送信する。使わない場合、4 つの方向キーの状態を送信する。