画像を出力しよう!

ゲームといえばかならずと言ってもいいほど画像が利用されます

今回はその画像を出力できるようにしたいと思います!

 

 


前回、初期の雛形として作ったものがありました

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{

        return 0;

}

これです。これにこれからプログラムを追加して行き、作成していきます。

 


最初に、DXライブラリを起動するための初期化の処理が必要です。

また、それに伴って起動したのだから終了するための処理も必要です。

したがって次の二つのプログラムを雛形に追加します。

 // DXライブラリ初期化処理
 if( DxLib_Init() == -1 )
 {
           return -1;  // エラーが起きたら直ちに終了
 }
 // DXライブラリ使用の終了処理
 DxLib_End() ;

 

このプログラムを雛形に追加します。

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{

         // DXライブラリ初期化処理
         if( DxLib_Init() == -1 )
         {
                   return -1;  // エラーが起きたら直ちに終了
         }

 

        // DXライブラリ使用の終了処理
        DxLib_End() ;

        return 0;

}

これで、DXライブラリを起動して終了させるプログラムができました!DXライブラリを必ず使うならこれは雛形になりますね

 


ちなみに、このプログラムを実行するとフルスクリーンで真っ黒な画面が表示され、一瞬で閉じて終わりのなんとも何が起こっているのかわからないですね。

 では、いちいちフルスクリーンで表示されても面倒なのでそれを『ウィンドウモードにする(切り替える)関数(ChangeWindowMode())

一瞬で閉じるのを防ぐため『キーを押すまで待機する関数(WaitKey())』をプログラムに追加します。

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{

         ChangeWindowMode(TRUE);        //ウィンドウモード切替

        // DXライブラリ初期化処理
        if( DxLib_Init() == -1 )
        {
                return -1; // エラーが起きたら直ちに終了
        }

         WaitKey();

        // DXライブラリ使用の終了処理
        DxLib_End() ;

        return 0;

}

 これでキーを押すまではウィンドウとして真っ黒な画面が表示されました。

 


 では、ここからが今回のメインです!

画像を出力してあげましょう!ということです

まぁ、その前にまずは画像を用意しましょう。

とりあえず自分はペイントで作ったこれを使います。画像を出力するにはいくつか方法があるみたいです。

とりあえずLoadGraphScreen()関数を使いたいと思います。どうやらこの関数は読み込みと表示を一緒にしてくれる関数のようです。プログラムに追加してみます

 

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{

         ChangeWindowMode(TRUE); //ウィンドウモード切替

    // DXライブラリ初期化処理
    if( DxLib_Init() == -1 )
    {
       return -1; // エラーが起きたら直ちに終了
    }

 

     // 画像の読み込みと表示
     LoadGraphScreen( 0 , 0 , "gazou¥¥boman1.png" , TRUE ) ;
 

 

    WaitKey();

    // DXライブラリ使用の終了処理
    DxLib_End() ;

    return 0;

}

 ちょっと¥が大きくなってしまいましたがこのたった1行で画像を出力することができます。

 でも画像を表示させたいときに毎回画像の読み込みを行うと大変処理が重くなりますのでそれを解消するために読み込みと表示を別にしてあげます。

その読み込む関数がLoadGraph()関数やLoadDivGraph()関数、呼び込んだ画像を表示する関数がDrawGraph()関数です。

さきほどのLoadGraphScreen()を消して

 int ghandle =LoadGraph("gazou\\boman1.png"); //読み込み
 DrawGraph(0, 0, ghandle, TRUE);     //表示

 これを追加しましょう。出力すると次のようになると思います

 

 


今回はここまでです。

ちゃんと画像が表示されました!ここでわかるように、画像はローディングと表示という二つの行為で出力されます。

画像が出力されたことによって、さらにゲームに一歩近づいた気がします!このキャラが動いたらと思うとワクワクします!

 

次回の予告です!

この出力させた画像を動かしてみます!

とうとうキャラクターが動いちゃうんですね!

 

 

↓↓広告です。支援してくださる方はクリックお願いします。


TOPへ戻る

inserted by FC2 system