【Misson4 画面】 |
![]() |
図1 Mission3画面 |
【ステップ2−1 ビットマップの挿入 Part1】 | 解説 |
![]() |
「挿入」メニューより、「リソース」を選択。 そうすると、次の、図13のようなウインドウが 表れたはずだ。 |
図2 リソースの追加 |
【ステップ2−2 ビットマップの挿入 Part2】 | 解説 |
![]() |
左のダイアログウィンドウより、「Bitmap」を選択 新規作成をクリック。 すると、何も描かれていないビットマップリソースが 挿入されたはずだ。 とりあえず、リソースの名前が、 「IDB_BITMAP1」である事を確認する。 名前が違っていたら、「IDB_BITMAP1」に変更する。 変更の仕方は、以下を参照の事。 |
図3 リソースの挿入ダイアログ |
【ステップ2−3 リソース名の変更方法】 | 解説 |
![]() |
左図は、ワークスペース内で、"Resource View" タブ
を選択し、"mission1 リソース" の横チョの[+]をクリック "Bitmap" の横チョの[+]をクリック ほんでもって、さっき挿入した Bitmap リソースの上で 右クリックした状態である。 右クリックすると、左図のようにメニューが でてくるので、その中の"プロパティ"を選択すると 下の画面が出てくる。 下の画面の ID の項目を編集して、 この"ビットマップ プロパティー" ダイアログを閉じれば リソースの名称変更は完了である。 |
![]() | |
図4 リソースの名称変更 |
【ステップ2−4 ビットマップの挿入 Part3】 | 解説 |
![]() |
ビットマップリソースを新規作成すると、 自動的に左の様な画面になったはずだ。 ワークスペースは、"Resource View"に変わっている。 ワークスペースの、"mission1リソース" の横チョの[+]を クリックして、"Bitmap"の横チョの[+]をクリックして、 IDB_BITMAP1 をダブルクリックすれば、いつでもこの画面に戻ってこれる。 空っぽも寂しいので、何か描いておこう。 僕の絵はヘタクソだが、みんなはもう少しマシなもの を描いてくれ。 |
図5 ビットマップの編集 |
【ステップ3−1 テクスチャー読み込みルーチン】 | 解説 |
![]() |
ワークスペース(左図の部分)から、 d3dmain.cpp をダブルクリックして開きます。 すると画面は、図7の様になったはずです。 |
図6 ワークスペース |
![]() |
図7 d3dmain.cpp |
![]() |
次に、図8のようにして編集メニューから検索コマンドを選びます。 すると、図9のようなダイアログウィンドウが出てきます、 ここでは、RestoreDeviceObjects というキーワードで検索を実行。 この操作を二回繰り返すと、リスト1aのプログラムが出てくるはずです。 | |
![]() | ||
図9 検索ウィンドウ
| 図8 検索コマンド |
改造前 |
---|
![]() |
リスト1a |
解説 |
関数 RestoreDeviceObjects は、3D描画環境(IDirect3DDevice8)
を初期化もしくは再初期化した際に呼び出されるようになっています。 3D描画環境が再初期化されるとテクスチャも破棄される為、 テクスチャの読み込みはここで行うのが良い事になります。 テクスチャの読み込みの為に、以下の様に変更して下さい。 |
改造後 |
---|
![]() |
リスト1b |
解説 |
実際に入力するのは、リスト1bの白バックの部分です。
CreateTextureFromResourceEx はDirectX 関数で、リソースから テクスチャを生成します。詳しくは、Microsoft のドキュメントを 参照してください。Color key を設定していますが、これは、 透過色の設定で、用意したグラフィックの透過させたい部分の色 を指定して下さい。 g_pTexture はテクスチャを保存する為のグローバル変数、 g_fTexImageWidth および g_fTexImageHeight は、テクスチャの サイズを保持するグローバル変数で、 d3dmain.cpp の最初の方で宣言しています。 g_fTexImageWidth、g_fTexImageHeight の 1.0 はテクスチャ全体を 意味しています。 |
【ステップ3−2 テクスチャーの破棄】 | 解説 | |
![]() |
再度、図10のようにして編集メニューから検索コマンドを選びます。 すると、図11のようなダイアログウィンドウが出てきます、 こんどは、InvalidateDeviceObjects というキーワードで検索を実行。 | |
![]() | ||
図11 検索ウィンドウ
| 図10 検索コマンド |
改造前 |
---|
![]() |
リスト2a |
解説 |
関数 InvalidateDeviceObjects は、3D描画環境(IDirect3DDevice8)
を破棄もしくは再初期化する直前に呼び出されるようになっています。 3D描画環境が再初期化されるとテクスチャも強制的に破棄される為、 その直前にテクスチャを明示的に破棄しておくのが無難です。 その為に、以下の様に変更して下さい。 |
改造後 |
---|
![]() |
リスト2b |
![]() |