DirectX講座13回でまとめたプログラムを複数ファイルに分割してみます

13回でまとめた
・Direct3Dクラス
・Textureクラス
・Spriteクラス
・DirectSoundクラス
・Waveクラス
・SoundBufferクラス
を各種ヘッダー(.h)とソース(.cpp)のペアで分割してます

今回使うプログラムファイルは次のようになってます。どぞー(-ω-)つ旦
filedirect3d.h
filedirect3d.cpp
filetexture.h
filetexture.cpp
filesprite.h
filesprite.cpp
filedirectsound.h
filedirectsound.cpp
filewave.h
filewave.cpp
filesoundbuffer.h
filesoundbuffer.cpp
filewinmain.cpp
使っている素材はこちら(13回と変更なし)
filecar.bmp
filekatana.wav
filebomb.wav
zipでほしい人はこちら
fileframework.zip

ファイルが一杯ですが処理の方の変更はありません
winmain.cppにWinMain関数があります
WinMain関数もmain関数同様プログラムの開始となる関数なので
プロジェクト1つにつき、WinMain関数は1つしか存在してはいけません
13回でまとめたクラスを全て別ファイルに分割しました
winmain.cppで分割したクラスのヘッダーを全てインクルードします
クラスを使うところの処理はまったく変わりません

#include <Windows.h>
#include <tchar.h>

// 作ったヘッダーファイルを全部インクルード
#include "direct3d.h"
#include "texture.h"
#include "sprite.h"
#include "directsound.h"
#include "wave.h"
#include "soundbuffer.h"

// ウィンドウプロシージャ、ウィンドウに対するメッセージ処理を行う
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)

// ここより後のプログラムは13回とまったく変わらないので略・・・

分割したファイルですが
ヘッダーファイルには先頭に#pragma onceを書き
DirectXのヘッダーライブラリをインクルードし
クラス定義します

direct3d.hとdirect3d.cppを例にあげます

direct3d.hは次のようになります

#pragma once

//////////////////////////////////////////////////////////////
// Direct3Dのヘッダーとライブラリ
#define D3D_DEBUG_INFO	// Direct3Dデバックフラグ

#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib, "d3dxof.lib")
#pragma comment(lib, "dxguid.lib")
#pragma comment(lib, "winmm.lib")
#include <comdef.h>
#include <d3d9.h>
#include <d3dx9.h>
#include <mmsystem.h>
//////////////////////////////////////////////////////////////

// Direct3Dクラス
class Direct3D
{
// クラスのメンバは13回と同じなので以下略

DirectX系のヘッダーファイルとライブラリ
各ヘッダーファイルごとに読み込まなければならないのでそこだけ追記します

どこかに各クラスのメンバ関数の実装をしなければならないため
ソースファイルを作成し、そこにクラスのメンバ関数を実装します
各クラスの定義が書かれたヘッダーファイルを読み込まなければメンバ関数が実装できません

今回、Direct3Dクラスの実装はdirect3d.cppに書きました

#include "direct3d.h"

// コンストラクタ
Direct3D::Direct3D(){
// クラスのメンバ関数の実装は13回と変更がないので以下略

他のクラスも同様に分割してあります

これは個人的な意見ですが1クラスに対し
クラスを定義するヘッダーファイルとそのクラスの実装のソースファイルをペアで作るといいと思います
そのほうが見やすいしファイルを探しやすいと思うので・・・
(こうしなければならない決まりはない)

結果は13回と変わらないので省略します

前:DirectX講座14回
次:DirectX講座16回

選択肢 投票
こんな講座で大丈夫か・・・? 4  
大丈夫だ!問題ない 5  
一番いい講座を頼む 4  

添付ファイル: fileframework.zip 283件 [詳細] filedirectsound.h 359件 [詳細] filedirectsound.cpp 332件 [詳細] filedirect3d.h 390件 [詳細] filedirect3d.cpp 368件 [詳細] filekatana.wav 181件 [詳細] filebomb.wav 153件 [詳細] filecar.bmp 241件 [詳細] filewinmain.cpp 415件 [詳細] filewave.h 322件 [詳細] filewave.cpp 305件 [詳細] filetexture.h 406件 [詳細] filesprite.h 321件 [詳細] filetexture.cpp 333件 [詳細] filesprite.cpp 286件 [詳細] filesoundbuffer.h 314件 [詳細] filesoundbuffer.cpp 322件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-02-07 (水) 17:56:26