ホームへ戻る

 1.4章 画像をロードして表示する

 4章で、少し面倒くさそうな話をしたので、処理も複雑になるのでは?と心配した人もいるかもしれませんが、

そこは、DXライブラリですから心配しないで下さい。

・画像をロードする
・ロードした画像を表示する

というたった二つの関数で実現出来ます。

画像をロードするとデータハンドルと呼ばれる識別番号が返ってきます。

例えばセルフのラーメン屋さんでラーメン頼んだとして「受付番号10番でお待ちください」と言われたとするとこの「10番」が識別番号です。

自分のラーメンはこの番号で識別するわけですね。

そのように読み込んだ画像も識別番号であるデータハンドルを使って描画を行います。

画像をロードしてデータハンドルを返す関数は LoadGraph関数 です。LoadGraph関数 のリファレンスを確認 してみましょう。

宣言 int LoadGraph( char *FileName ) ;

概略 画像ファイルのメモリへの読みこみ、及び動画ファイルのロード

引数 FileName : ロードする画像、及び動画ファイルの
      ファイルパス文字列へのポインタ
戻り値 -1   : エラー発生
-1以外 : グラフィックのハンドル


引数にはファイル名を渡してください。サンプルの場合「"画像/キャラクタ00.png"」となります。

すると、int型でデータハンドルが返ってきますので、変数に格納します。

int Handle;
Handle = LoadGraph( "画像/キャラクタ00.png" );

こんな感じですね。このデータハンドルを使って描画するには DrawGraph関数 を用います。DrawGraph関数 のリファレンスを確認 してみましょう。

宣言 int DrawGraph( int x, int y, int GrHandle, int TransFlag ) ;

概略 メモリに読みこんだグラフィックの描画

引数 x , y   : グラフィックを描画する領域の左上頂点の座標
GrHandle  : 描画するグラフィックのハンドル
TransFlag : 透過色を有効にするか、のフラグ(TRUEで有効、FALSEで無効)

前の章で紹介した関数と第三引数が異なるだけです。

ファイル名ではなく、LoadGraph関数 で取得したデータハンドルを渡しています。

全体のプログラムコードを確認してみましょう。


#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode( TRUE ); // ウィンドウモードに設定
        DxLib_Init();   // DXライブラリ初期化処理

        int Handle;     // データハンドル格納用変数
        Handle = LoadGraph( "画像/キャラクタ00.png" ); // 画像をロード
        DrawGraph( 50, 100, Handle, TRUE ); // データハンドルを使って画像を描画

        WaitKey();     // キー入力があるまで待機
        DxLib_End();   // DXライブラリ終了処理
        return 0;
} 

実行結果


実行結果は同じです。

こうしてデータハンドルを使った描画が出来ました。

→分からないことがあれば掲示板で質問して下さい


- Remical Soft -