最初に紹介した画像を表示する関数LoadGraphScreen()では、毎回ファイルの読み込みをしていますが
同じ画像ファイルを毎回読み込ませるのは無駄もあり、処理時間の遅れに繋がります。
そこであらかじめ画像データを読み込ませ、その画像データのハンドル(画像の識別番号)で画像を扱えば
とても楽に早く処理が出来ます。今回はハンドルをint型の変数に代入して画像を表示する方法を紹介します。
ゲームでは全てこの方法で画像を表示します。
ハンドルを受け取るにはLoadGraph関数を使用し、LoadGraph("画像のファイル名");の返り値を変数に代入すればよいのです。
ハンドルを使った画像の表示にはDrawGraph関数を使用し、
DrawGraph( x , y , ハンドル , Fill_Flag);
と書きます。ハンドルにはint型の先ほど格納したハンドルを指定し、Fill_Flagは今まで通り透過するかどうかのフラグです。
サンプルではchar.pngのハンドルをint型変数imageに代入し、表示しています。
↓コピー&コンパイル用サンプルプログラム↓
#include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode( TRUE ) ; // ウィンドウモードに変更 if( DxLib_Init() == -1 ) return -1 ; // DXライブラリ初期化処理 int image, image2; //ハンドルを受け取るためのint型変数を宣言 image = LoadGraph( "back.bmp" ) ; //back.bmpのハンドルを代入 image2 = LoadGraph( "char.png" ) ; //char.pngのハンドルを代入 DrawGraph( 0 , 0 , image , FALSE ) ; //back.bmpを表示 DrawGraph( 0 , 0 , image2 , FALSE ) ; //char.pngを表示 WaitKey(); //何かキー入力があるまで待つ DxLib_End() ; //DXライブラリの終了処理 return 0 ; }
実行結果
方法は違いますが結果として3節と同じ事をしたので実行結果は3節と同じになります。
- Remical Soft -