![]() |
Mission5 を改造する。
今度は、GameMain.cpp を改造する。 本 Mission で改造するファイルは、GameMain.cpp のみである。 まぁとりあえず始めよう。 左のようにワークスペースから、GameMain.cpp を開く。 |
【ステップ2−1 冒頭部分を改造1】 | |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト1a | リスト1b |
解説 |
GameMain.cpp の冒頭部分に、改造前(リスト1a) のような部分があるはずだ。 ここを、改造後(リスト1b)のように改造する。 |
【ステップ2−2 グローバル変数の宣言】 | |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト2a | リスト2b |
解説 |
ここも、改造前(リスト1a)の部分に、 改造後(リスト2b)のように一行書き足す。 |
【ステップ2−3 InitD3D を改造】 | |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト3a | リスト3b |
解説 |
Mission5 で宣言したクラス(CMeshTest)を ここで構築する。 |
【ステップ2−4 UpdateScreen を改造1】 | |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト4a | リスト4b |
解説 |
UpdateScreen 関数内で、 CMeshTest のアニメーション関数を呼び出す。 GetElapsedTime および GetElapsedTimeAndReset は、 HighResTimer.cpp の中で宣言されている、 クラス CHighResTimer の関数であり、 経過時間測定を行っている。。 単位は、60分の1秒を1.0 としていて、 返り値は、float 型である。 |
【ステップ2−5 UpdateScreen を改造2】 | |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト5a | リスト5b |
解説 |
UpdateScreen 関数内で、 CMeshTest のレンダリング関数を呼び出す。 これでキャラが表示される。 |
【ステップ2−6 InitDeviceObjects を改造】 | |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト6a | リスト6b |
解説 |
GameMain.cpp の関数、InitDeviceObjects から CMeshTest クラスの関数 InitDeviceObjects を呼び出す。 デバイス依存のメモリ上のオブジェクトが準備される。 具体的にはメモリ上に頂点データが構築される。 |
【ステップ2−7 RestoreDeviceObjects を改造】 |
改造前 |
---|
![]() |
リスト7a |
改造後 |
![]() |
リスト7b |
解説 |
GameMain.cpp の関数、RestoreDeviceObjects から CMeshTest クラスの関数 RestoreDeviceObjects を呼び出す。 デバイス依存のデバイス上のオブジェクトが準備される。 具体的にはビデオカード上にテクスチャーデータが構築される。 |
【ステップ2−8 InvalidateDeviceObjects を改造】 | |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト8a | リスト8b |
解説 |
GameMain.cpp の関数、InvalidateDeviceObjects から CMeshTest クラスの関数 InvalidateDeviceObjects を呼び出す。 デバイス依存のデバイス上のオブジェクトが消去される。 具体的にはビデオカード上のテクスチャーが廃棄される。 |
【ステップ2−9 DeleteDeviceObjects を改造】 | |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト9a | リスト9b |
解説 |
GameMain.cpp の関数、DeleteDeviceObjects から CMeshTest クラスの関数 DeleteDeviceObjects を呼び出す。 デバイス依存のメモリ上のオブジェクトが消去される。 具体的にはメモリ上の頂点データが廃棄される。 |
【ステップ2−10 ReleaseD3D を改造】 | |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト10a | リスト10b |
解説 |
GameMain.cpp の関数、ReleaseD3D の中で、 CMeshTest クラスのグローバル変数を廃棄する。 |
こんな風になったら完了。