トップページ > 過去ログ > 記事閲覧
LoadDivGraph と MV1SetTextureGr
名前:Masao 日時: 2009/12/15 07:29

DXライブラリ ver 3.00e VC++ 2008 Express Ed. の環境で、3Dゲーム作成中にテクスチャを入れ替えてアニメーションを作ろうとしたところ、 MV1SetTextureGraphHandleに渡す画像ハンドルが LoadDivGraphで読み込んだハンドルの場合、適切な場所がテクスチャにならないようです。 適切ではないというのは、画像全体がテクスチャに適応されて、LoadDivGraph で切り取った部分的画像 を適応できないみたいです。 以下テストコードです。 一部流用させていただきました。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int ModelHandle ; int GrHandle ; int divGrHandle[4]; int TexIndex ; ChangeWindowMode(TRUE); // DXライブラリの初期化 if( DxLib_Init() < 0 ) { // エラーが発生したら直ちに終了 return -1 ; } // 緑色の目の画像の読みこみ GrHandle = LoadGraph( "materials/25.JPG" ) ; LoadDivGraph("materials/coin.jpg",4,2,2,128,128,divGrHandle); // 3Dモデルの読み込み ModelHandle = MV1LoadModel( "materials/sky_test3.mqo" ) ; // モデルを画面に映る位置に移動 MV1SetPosition( ModelHandle, VGet( 320.0f, -300.0f, 400.0f ) ) ; // 目の部分のマテリアルで使用されているテクスチャの番号を取得 TexIndex = MV1GetMaterialDifMapTexture( ModelHandle, 0 ) ; // モデルを描画する MV1DrawModel( ModelHandle ) ; ScreenFlip(); WaitKey(); for(int i = 0;i < 10; i++){ // テクスチャで使用するグラフィックハンドルを変更する MV1SetTextureGraphHandle( ModelHandle, TexIndex, divGrHandle[i%4], FALSE ) ; // モデルを描画する MV1DrawModel( ModelHandle ) ; ScreenFlip(); printfDx("LoadDivGraphでロードしたものをテクスチャに指定。\n"); WaitKey(); } // テクスチャで使用するグラフィックハンドルを変更する MV1SetTextureGraphHandle( ModelHandle, TexIndex, GrHandle, FALSE ) ; // モデルを描画する MV1DrawModel( ModelHandle ) ; ScreenFlip(); printfDx("LoadGraphでロードしたものをテクスチャに指定。\n"); // キー入力待ち WaitKey() ; // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }

Page: 1 |

Re: LoadDivGraph と MV1SetTextureGr ( No.1 )
名前:管理人 日時:2009/12/19 01:18

すいません、LoadDivGraph で分割読込した画像や DerivationGraph で一つの画像から 抜き出した派生画像などは MV1SetTextureGraphHandle には使用できません m(_ _;m リファレンスにも追記しておきます
Re: LoadDivGraph と MV1SetTextu ( No.2 )
名前:Masao 日時:2009/12/19 01:25

分かりました。ありがとうございます。 ファイル単位で画像を分割することにします。

Page: 1 |