超初心者のプログラム入門(DirectX9)

前田稔(Maeda Minoru)の DirectX9 Game Programing 入門のページです。
Maeda Minoru webpage is written about DirectX9 Game Programing tutorial.

超初心者の方が DirectX でプログラムを作成するのは並大抵のことではありません。 (-.-;)
そこで超初心者の方でも DirectX が学べるように「入門の入門ページ」を開設しています。\(^o^)/
CPU の16ビット→32ビット→64ビットの移行に伴い、16ビットモードのライブラリやDLLは使えないようです。

プログラムは特に断りの無い限り MultiByte で作成しています。
最近では規定値が Unicode になっているので注意して下さい。

ホームページの画像は容量節約のため他の言語と共有しています。
従って、ページの説明とは必ずしも一致しない場合があるので、お含み置き下さい。

前田稔(Maeda Minoru)の超初心者のプログラム入門

DirectX Programming Guide

DirextX9 INDEX

超初心者のための入門

  1. DirectX のプロパティを表示
    DirectX のプロパティ画面を表示する方法です。
  2. DirectX9 のインストール
    DirectX9 の SDK(ソフトウェア開発キット)をインストールします。
  3. Sample Brower でサンプルプログラムを実行
    ☆Sample Brower を使って添付されているプログラムを実行します。
  4. DirectX9 のプログラムを自動的に作成する
    誰でも簡単に DirectX のプログラムが作成できることを体験してもらいましょう。
    ☆DirectX 9.0 Summer 2004(.NET) からはテンプレート機能が無くなっています。
  5. Hello Direct X9 を表示する
    DirectX のテンプレート機能(CMyApplication) 使って Hello Direct X9 を表示します。
  6. DDS 形式の画像ファイルを作成する
    DDS(DDSURFACEDESC)は DirectX7 から使われ始めたαチャンネル付の画像です。
  7. Debug 情報を表示する
    デバッグ情報を表示する方法を幾つか紹介します。
  8. Frame Rate を設定する
    Frame Rate を設定してティーポットを回転しながら描画します。

2Dグラフィックスのプログラム

2Dグラフィックスは Vista 以降のOSでは、動かないかも知れません。
  1. 文字列の Surface を描画する
    DirectX で CDisplay Class を使って、CreateSurfaceFromText で文字列を格納した Surface を生成します。
    プロジェクトの作成方法も説明します。
  2. フルカラービットマップ画像を表示する
    DirectX の CreateSurfaceFromBitmap で画像を格納した Surface を生成して描画します。
  3. Windowed Mode で画像を表示する
    DirectX の Windowed Mode の基礎です。
    ウインドウをドラッグしてサイズを変更すると、画面に合わせて画像が伸縮します。
  4. Direct Draw で「ドラえもん」を描く
    DirectX の GetBackBuffer で BackBuffer を取得して、直接 GDI 関数で「ドラえもん」を描きます。
  5. 拡大した画像の上を元の画像が動き回る
    DirectX の GetBackBuffer で BackBuffer を取得して 直接 StretchBlt() で拡大して描画します。
    その上から元のサイズの BMP 画像を重ねて、動き回ります。
  6. 画像を切り替えてアニメーション
    DirectX の CDisplay Class を使って、girl.bmp から Sprite を切り出してアニメーションします。
  7. 目パチ、口パクのアニメーション
    DirectX の CDisplay Class を使って、部分(部品)を組み合わせてアニメーションを行います。

Sprite Program

  1. Direct3D デバイスを取得する
    DirectX の3Dデバイスを取得して、ウインドウを表示します。
    最もシンプルな3Dデバイスを取得するプロジェクトです。
  2. Back Buffer を取得して円を描画する
    DirectX の GetBackBuffer で Buffer を取得して円を描画する 3D Graphics の最も簡単なプログラムです。
    D3D Device が正常に取得できたことを確認します。
  3. DirectX9 で Sprite を表示する
    Sprite(2Dグラフィックス)の基本としてアルファブレンディングに挑戦してみます。
    DirectX の D3DXCreateSprite で Sprite を生成します。
    LPD3DXSPRITE->Draw でアルファブレンディングを設定して描画します。
  4. Sprite で美人のアニメーション
    DirectX の LPD3DXSPRITE->Draw で画像を切り分けて、美人の animation を行います。
    Window Size を変更しても Sprite Size が変わらないように設定します。
  5. Sprite で画像を回転する
    DirectX の D3DXMatrixRotationZ で画像を回転しながら描画します。
  6. 透明色を設定して Sprite を表示する
    DirectX の D3DXCreateTextureFromFileEx で黒を ColorKey(透明色)に設定して画像を回転しながら描画します。
  7. Sprite の拡大と縮小
    DirectX の D3DXMatrixScaling で、キーの操作で画像を拡大・縮小しながら描画します。
  8. Wondow Mode の切り替え
    SetWindowLong で Window Mode と Full Screen Mode を "W" キーで切り替えます。

3Dグラフィックス入門

  1. D3D で三角形を描画する
    三角形の頂点に「赤緑青」を設定して DirectX の DrawPrimitiveUP で描画します。
    DirectX9 3D(三次元)グラフィックスを表示する基本的なプログラムです。
  2. 終了メニューを設定する
    プログラムの終了メニューを設定します。
  3. 4面体を回転しながら描画する
    timeGetTime を取得して DirectX の D3DXMatrixRotationY でワールド座標を自動的に回転しながら4面体を描画します。
    ※D3DXMatrixLookAtLH() 関数の説明です。
    ※D3DXMatrixPerspectiveFovLH() 関数の説明です。
  4. View 座標を回転しながら描画する
    長方体に色を設定して、DirectX の SetTransform(D3DTS_VIEW,&matView) で自動的に View 座標を回転しながら描画します。
  5. Object のサイズと描画のサイズ
    小さいモデルから大きいモデルまで、画面全体に同じように描画します。
    DirectX の D3DXMatrixLookAtLH と D3DXMatrixPerspectiveFovLH が関係します。
  6. マウス操作で View 座標を回転する
    長方体のそれぞれの面に異なる色を設定して、マウス操作で View 座標を回転します。
    WM_MOUSEMOVE でマウスの移動を検出して、自作の Rotate 関数で回転します。
  7. 頂点座標の Index を使って BOX を描画する
    DrawIndexedPrimitiveUP() で頂点座標の Index を使って BOX を描画します。

Mesh を描画

  1. メッシュを描画する基本プログラム
    DirectX の D3DXCreateTorus でトーラスのメッシュを生成して描画する基本プログラムです。
  2. 球をライトで照らして View 座標を回転する
    球を光源で照らして View 座標を回転しながら描画します。
    ライトは DIRECT3DDEVICE9->SetLight() で、マテリアルは DIRECT3DDEVICE9->SetMaterial() で設定します。
  3. MyD3D Class でティーポットを描画する
    MyD3D Object Class を使うと簡単にティーポットを光源で照らして描画することができます。
    DirectX の D3DXCreateTeapot でティーポットメッシュを生成して LPD3DXMESH->DrawSubset で光源で照らして描画します。
  4. Full Screen Mode で View 座標を回転する
    Full Screen Mode で表示するだけなら、いたって簡単です。
    余りにも簡単なので View 座標を回転しながらティーポットを表示します。
  5. Light を回転しながら描画する
    自作の Rotate() 関数で Light を回転しながら描画します。
  6. 変換行列を使って Light を回転する
    DirectX の変換行列を使って Light を回転しながら描画します。
  7. 虎のモデルを表示
    DirectX の D3DXLoadMeshFromX でサンプルモデルとして格納されている虎のメッシュ(X-FILE)をロードして表示します。
  8. マテリアルを設定して、虎のモデルを描画する
    マテリアルを設定して、虎のモデルを回転しながら描画します。
    DirectX の LPD3DXMESH->CloneMeshFVF でクローンを作成して法線ベクトルを設定する方法も説明します。
  9. X_FILE Object Class
    X_FILE Object Class を使って、虎のメッシュ(tiger.x)を描画します。
  10. X_FILE Object Class & Tiny.x
    X_FILE Object Class を使って Tiny.x を静止して描画します。
  11. ファイル選択メニューを設定する
    ファイルメニューから選択された X FILE を描画します。
  12. Cone.x を中心に置いてトーラスが回転
    Cone.x のメッシュを中心に置いて、トーラスが回転します。
  13. トーラスとコーンを親子関係で描画する
    トーラスがタイマ設定で自動回転し、その回りを逆方向にコーンが回転します。
    DirectX の D3DXMatrixTranslation, D3DXMatrixMultiply などの使い方を説明します。
  14. ティーポットとコーンとトーラスを親子孫で回転する
    ティーポットを中心にしてコーンが回転し、その周囲をトーラスが周ります。
    DirectX の座標変換と、マテリアルの設定とオブジェクトのレンダリングの関係を説明します。
  15. Windows と FullScreen を W キーで切り替える
    MyD3D Object Class を使って Windows Mode と FullScreen Mode をキーの操作で切り替えます。
  16. LWOのモデルを描画
    lwo2dx.exe で LIGHTWAVE で作成した LWO のモデルを直接コンバートして描画します。
  17. Table で Key Frame を作成する
    Teapot のメッシュを使って Key Frame を作成します。
    Key Frame が作成できたら、Frame 間を補完して Key Frame Animation をしてみましょう。

Texture を貼り付ける

  1. ピクセル座標で定義した矩形にテクスチャを貼り付ける
    DirectX の D3DXCreateTextureFromFile で画像を読み込んで、ピクセル座標で定義した矩形に貼り付けます。
  2. 透明色を設定したテクスチャを貼り付ける
    矩形に透明色を設定したテクスチャを貼り付けて表示します。
    ColorKey(透明色)を設定するときは DirectX の D3DXCreateTextureFromFileEx() を使います。
  3. 矩形にあゆのテクスチャを貼り付ける
    浜崎あゆみの画像を矩形をまたいで貼り付けます。
    一個の矩形に、あゆの画像を繰り返して貼り付けます。
  4. 背景画像を立体的にスクロール
    テクスチャを利用して背景画像を立体的にスクロールします。
  5. DDS でαブレンディングする
    DDS ファイルの画像とマスクを使って、αブレンディングして描画します。
    DirectX の SetRenderState でαブレンディングの設定を行います。

Surface のプログラム

  1. OffscreenSurface に Jpeg Image をロードする
    DirectX の CreateOffscreenPlainSurface で Surface を生成して、D3DXLoadSurfaceFromFile で画像をロードします。
    DirectX の LPDIRECT3DDEVICE9->StretchRect で画像を描画します。
  2. 図形を背景に画像を描画
    OffscreenSurface に描いた図形を背景に Sprite を回転しながら描画します。
    DirectX の GetBackBuffer でバックバッファを取得して、CreateOffscreenPlainSurface で画像ファイルのサーフェースを作成します。
  3. Back Buffer を取得して背景画像を表示する
    DirectX の GetBackBuffer で Buffer を取得して、直接 BMP 画像を描いた背景をバックにトーラスを回転しながら描画します。
  4. 竹林をバックに虎のメッシュを描画する
    DirextX の LPD3DXSPRITE->Draw で竹林の背景を表示して、これをバックに DrawSubset で虎のメッシュを回転しながら描画します。
  5. Map Chip で背景を表示
    Map Chip を組み合わせて BG(Back Ground) を表示します。
  6. BGMAP のイメージ画像を生成する
    CreateCompatibleBitmap で画像メモリを確保して、BGMAP のイメージ画像を直接生成して DOT 単位にスクロールします。
  7. スポットライトで照らす
    Sprite で描いた背景画像をスポットライトで照らします。
  8. fade-in, fade-out で文字を表示
    Back Buffer を取得して、3Dモデルの上から fade-in, fade-out で文字を表示します。
  9. TEXT 文字をスクロールする
    Back Buffer を取得して、3Dモデルの上から TEXT 文字をスクロールしながら表示します。
  10. 3Dのように背景をスクロールする
    DirectX の D3DXLoadSurfaceFromFile で画像をロードして、下側(手前側)を拡大して3Dのように背景をスクロールします。
    画像の変形は DirectX の LockRect で Surface のイメージデータへのポインタを取得して、ドットラインごとに縮小計算します。
  11. 二枚の画像をピクセルブレンドで切り替える
    二枚の画像をピクセルブレンドしながら滑らかに切り替えます。
    ブレンドは画像1と画像2のイメージデータへのポインタを DirectX の LockRect で取得して b,g,r を Rate に従って混ぜ合わせます。

VertexBuffer のプログラム

  1. VertexBuffer で多角形の筒を描画する
    DirectX の CreateVertexBuffer で領域を確保して、直接頂点データを割り当てて多角形の筒を描画してみましょう。
  2. 円筒にテクスチャを貼り付けて描画する
    DirectX の CreateVertexBuffer で領域を確保して、生成した円筒にテクスチャを貼り付けて回転しながら描画します。
  3. Mesh の頂点座標を変更する
    メッシュ(トーラスと円錐)のX座標を myd3d->Move_Mesh で左右にずらして横に並べて表示します。
    光源の設定を変えてトーラスを黄色で円錐を赤で描画します。
  4. Dolphin の Animation
    3枚の X-File を入力して myd3d->BlendMeshes で Vertex Buffer を Blending しながら Animation を行います。
  5. メッシュを生成して X-FILE に保存する
    D3DXCreateBox() などでメッシュを生成して X-FILE に保存します。
  6. 筒にテクスチャを貼り付けて保存する
    5角形の筒にテクスチャを貼り付けて X File に保存します。
  7. アニメーション X-FILE を作成する
    Animation X-FILE を Text Editor で作成します。

Shader のプログラム

  1. 頂点シェーダを使う
    頂点シェーダを使って正四面体を描画します。
    最も簡単な頂点シェーダのサンプルプログラムです。
  2. 筒にテクスチャを貼り付けて Shader で描画する
    六角形の筒にバナナの皮テクスチャを貼り付けて専用の Shader で描画します。
    Shader でテクスチャを設定するサンプルです。
  3. トーラスに色を付けて Shader で描画する
    トーラスの VertexBuffer を取得して、光源を設定して色を付けて Shader で描画します。
  4. ピクセルシェーダを使ってトーラスを描画する
    頂点シェーダとピクセルシェーダを使って、トーラスにディフューズ色を設定して描画します。

MIDI と WAVE のプログラム

  1. Audio Class で MIDI を演奏する
    DirectX の Audio Object Class を使うと MIDI の演奏が簡単にできます。
  2. Audio Class で WAVE を演奏する
    DirectX の Audio Object Class を使って DialogBox のボタン操作で WAVE を演奏します。
  3. PlaySegmentEx で WAVE を演奏する
    DirectX の IDirectMusicLoader8 を使って PlaySegmentEx で WAVE を演奏する最も簡単なプログラムです。
    DirectX9 でも IDirectMusicLoader8 が使われています。
  4. PlaySegmentEx で MIDI を演奏する
    DirectX の IDirectMusicLoader8 を使って PlaySegmentEx で MIDI を演奏する基本プログラムです。
    DirectX9 でも IDirectMusicLoader8 が使われています。
  5. MIDI を演奏しながら WAVE を鳴らす
    DirectX の Audio Object Class を使って MIDI を演奏しながら WAVE を鳴らします。
  6. MIDI と WAVE の音量を設定する
    DirectX の Audio Object Class を使って、MIDI と WAVE の音量を SpinButton で独立して設定します。
  7. MIDI のテンポを変えて演奏する
    DirectX の Audio Object Class を使って、演奏中の MIDI のテンポを SpinButton で操作します。
  8. 音楽のテンポを変えて演奏する
    トリビア(trivai) の泉でこんな興味深い放送をしていました。
  9. Wave File の形式です

Direct Input のプログラム

  1. Direct Input で図形を動かす
    DirectX の LPDIRECTINPUT8 でキーをセンスして図形を上下左右に動かします。
    DirectX9 でも LPDIRECTINPUT8 が使われています。
  2. マウスの動きに合わせて図形を動かす
    DirectX の LPDIRECTINPUT8 でマウスの動きに合わせて図形を動かします。
    DirectX9 でも LPDIRECTINPUT8 が使われています。
  3. コントローラを使う
    DirectX の LPDIRECTINPUT8 でコントローラ(Joystick)を使って図形を動かします。
    DirectX9 でも LPDIRECTINPUT8 が使われています。
  4. 2コントローラを使う
    DirectX で、二個のコントローラ(Joystick)を使って、円と矩形を別々に動かします。

Direct Play でパソコン通信

  1. SimplePeer でパソコン通信
    SDK のサンプルプログラム(SimplePeer) をビルドしてパソコン通信を行います。
  2. CMyApplication Class を自動的に構築する
    テンプレート機能を使って CMyApplication Class の通信プログラムを自動的に構築します。
    自動的に構築されたプログラムが動作しない原因を究明するのに1か月以上かかってしまいました。
  3. Direct Play でパソコン通信
    Direct Play を使ったパソコン通信の基礎です。
  4. SimplePeer とテンプレートでパソコン通信
    SDK のサンプルを HOST にして、テンプレート機能で生成したプログラムとパソコン通信を行います。
    Direct Play のテンプレートを使ったプログラム構築の基礎です。
  5. CMyApplication Class でパソコン通信
    CMyApplication Class で作成した HOST とクライアントとの間で通信を行います。
    テンプレートを使った CMyApplication(DirectPlay) のプログラム構築の説明です。
  6. パソコン通信でチャットをする
    テンプレート機能で生成したプログラムをベースにチャットのプログラムを作成します。
  7. ネット対戦ゲームを作成する
    通信機能を組み込んでネット対戦型の三山くずしゲームを作成します。

DirectX 9.0 April 2005

Microsoft DirectX 9.0 SDK (April 2005) のサンプルは Common のフォルダーに汎用的に使用するソースコードを置いて、 これを直接プリコンパイルヘッダでプロジェクトに組み込んでいます。
カーネルはそんなに違わないようですが、見かけが今までのプログラムとは大きく変わっています。
DirectX 9.0 April 2005 は64ビットに対応しているので Visual Studio 7.0(.NET) を使うことをお勧めします。
August 2007 でコンパイルすると次のような意味不明のエラーが表示されることがあります。
fatal error CVT1100: 重複するリソースです。
fatal error LNK1123: COFF への変換中に障害が発生しました: ファイルが無効であるか、または壊れています。
原因は .vcproj と Common にあるようで December2006 のものを使って正常に実行されることを確認しました。
  1. TEXT を表示する
    Sprite を使って TEXT 文字を表示します。
  2. 長方体を回転しながら描画する
    長方体の頂点座標を定義して、回転しながら描画します。
  3. ティーポットを描画する
    ティーポットのメッシュを生成して回転しながら描画します。
  4. 虎のモデルを描画する
    テクスチャを貼り付けた虎のモデルを回転しながら描画します。
  5. コーンのモデルを回転しながら描画する
    コーンのモデルを光源で照らして回転しながら描画します。

DirectX August 2007

Microsoft DirectX August 2007 は DirectX10 のプロジェクトですが、Vista 対応の DirectX9 のプロジェクトも格納されています。
DirectX のバージョンを変えると、パスの修正が必要になることがあるので Windows Guide を参照して確認して下さい。
August 2007 のサンプルは DXUT のフォルダーに汎用的に使用するソースコードを置いて、これを直接プロジェクトに組み込んでいます。
文字コードも Unicode が使われていて、今までとは少し勝手が違います。
ソースレベルでは互換性があるようで、この講座で説明しているプロジェクトも、一部を除いて大きな修正無しで動くので安心して下さい。 (●^o^●)
ただし DirectX10 になるとハード/ソフトの両面で大幅に変わり、今までのプログラミングが通用しなくなりそうです。 (;_;)
DirectX10 の説明は 超初心者のプログラム入門(DirectX10 game program) を参照して下さい。
  1. August 2007 DirectX9 の template を作成する
    空のプロジェクトから August 2007 DirectX9 のテンプレートを作成します。
  2. Template を使って Sprite でイメージを表示
    August2007 DirectX9 の Template を使って Sprite でイメージを表示します。
  3. ティーポットを回転しながら描画する
    August2007 DirectX9 の Template を使ってティーポットを回転しながら描画します。
  4. cone.x のモデルを回転しながら描画する
    August2007 DirectX9 で cone.x のモデルを回転しながら描画します。
  5. 3枚の X-FILE で Dolphin の Animation
    August2007 DirectX9 で3枚の X-FILE を使って Dolphin の Animation を行います。
  6. X-FILE(Tiny.x) でアニメーション
    August2007 DirectX9 で X-FILE(Tiny.x) でアニメーションしながら描画します。
  7. tiny_4anim.x でアニメーション
    August2007 DirectX9 で tiny_4anim.x でアニメーションします。

DirectX Novmnber 2008

2010年1月に待望の Windows7 を搭載した DirectX 10 対応のマシンを購入しました。
これで本格的に DirectX10 のプログラムを開発する環境が整いました。 \(^o^)/
Microsoft DirectX Novmnber 2008 には DirectX9, DirectX10, DirectX11 のプロジェクトも格納されています。
Novmnber 2008 では、主として DirectX10 をプログラムしています。
DirectX10 の説明は 超初心者のプログラム入門(DirectX10 game program) を参照して下さい。
DirectX9 も従来と同様にプログラミング出来るようで、2010 年からは Novmnber 2008 を使ってプログラミングしています。

2014/01/21 Visual Studio 2013 の試用期間が切れ Visual Studio 2005 に戻します。
2014/08/15 Windows 8.1 でも DirectX9 が動くようなので Novmnber 2008 を再度インストールして試してみました。
  Windows8.1
  Visual Studio 2005
  DirectX November 2008
  1. 終了メニューを設定する
    プログラムの終了メニューを設定します。
  2. ファイル選択メニューを設定する
    ファイルメニューから選択された X FILE を描画します。
他の DirectX9 のプロジェクトも実行できるようなので試してみて下さい。

DirectX June 2010

2011年11月に DirectX June 2010 をインストールしました。
当初の開発環境は Windows7 & Visual Studio .NET2005 & DirectX June 2010 です。
June 2010 は DirectX11 がサポートされていて、拡張子が .vcproj から .vcxproj に変わっています。
Visual Studio .NET2005 では .vcxproj のプロジェクトが起動出来ないために Sample Brower が使えませんでした。 (^_^;)
2011年12月に Visual C++ 2010 Express をインストールして、June2010 の Sample Brower が利用出来るようになりました。
  1. ティーポットを描画する
    ティーポットのメッシュを生成して回転しながら描画します。
    空のプロジェクトから作成する方法もこれを機会に一度整理しておきましょう。
  2. 虎のモデルを描画する
    テクスチャを貼り付けた虎のモデルを回転しながら描画します。
  3. ファイル選択メニューを設定する
    ファイルメニューから選択された X FILE を描画します。
    メニューの作成も操作法が少し変わったようなので改めて説明します。
  4. Sample Brower で Tiny のアニメーション
    DirectX に添付されている X-FILE(Tiny.x)を入力して、アニメーションします。
  5. Sample Brower でティーポットを描画
    Sample Brower で生成したプロジェクトでティーポットを描画します。
    CModelViewerCamera を使うとモデルを簡単に回転することが出来ます。
  6. Sample Brower で X-FILE を描画
    Sample Brower で生成したプロジェクトで X-FILE(cone.x) を描画します。
  7. Mview を作成する
    Tiny のプロジェクトをベースに X-FILE のビューア(Mview) を作成します。

Game & Tool Program

  1. Spin Button で Material を操作
    Dialog Box の Spin Button で Material を操作して View 座標を回転しながら描画します。
  2. Spin Button で3Dモデルの姿勢を操作
    Dialog Box の Spin Button でティーポットの姿勢(座標と回転)を操作して描画します。
  3. モーションアニメーション
    X-FILE のパーツを組み合わせてアニメーションを行います。
  4. Startreck から弾を発射する(2005/07/01)
    Startreck から敵機に向けて弾を発射します。
  5. 当たり判定と効果音(2005/07/01)
    弾の連射と当たり判定を行い、効果音を鳴らします。
  6. 爆発のアニメーション(2005/07/01)
    Enemy に弾がヒットして爆発するアニメーションを描画します。
  7. TEXT FILE で Enemy の動きを設定する(2005/07/01)
    Enemy の動きを定義した Motion.txt を入力して、乱数で移動コースを選択して動かします。

DirectX を使うと Windows のシステムに邪魔されることなく、グラフィックボードや入力機器に 直接アクセスすることが可能になり、描画速度や迅速な応答を要求されるゲームプログラムなどを 作成することができるようになります。

DirectX のプログラムを作成するためには、DirectX のSDK(ソフトウェア開発キット)と C++のコンパイラが必要です。
DirectX SDKはマイクロソフトが無料で配布しているので、雑誌の付録やネットから無料で ダウンロードしたり、送料のみでCD-ROMを手に入れることができますが、C++ コンパイラは 購入しなければなりません。(^_^;)

前田稔(Maeda Minoru)の超初心者のプログラム入門

超初心者のプログラム入門(DirectX10 game program)