>> ゲームプログラミング入門トップに戻る
今回はメモリに読み込んだ画像データを削除する方法について説明します。
音声データの時もメモリに読み込んだデータを削除する関数がありましたが、
画像データの場合にも専用の関数があります。
関数は、DeleteGraph関数とInitGraph関数があります。
DeleteGraph関数は引数にグラフィックハンドルを指定し、特定の画像データを削除する関数です。
InitGraph関数は引数はなしで、メモリに読み込んだ画像データをまとめて削除する関数です。
以下にサンプルコードを示します。
上記のコードはただ終了時に画像データを削除しているだけですので意味はありません。
この関数でいちいち削除しなくても、自動的にプログラム終了時にすべて削除されるからです。。
この関数の使いどころとしては、ステージ1からステージ2に移動する時に、
ステージ1の画像データはもう必要ないからメモリから削除したい!っていう時によく使います。
いつまでもメモリに読み込んだままにしておくと、リソースの無駄ですからね。
今回の説明は以上です。
>> 【単純に音声を鳴らす】に進む
>> ゲームプログラミング入門トップに戻る
メモリに読み込んだ画像データを削除する
音声データの時もメモリに読み込んだデータを削除する関数がありましたが、
画像データの場合にも専用の関数があります。
関数は、DeleteGraph関数とInitGraph関数があります。
DeleteGraph関数は引数にグラフィックハンドルを指定し、特定の画像データを削除する関数です。
InitGraph関数は引数はなしで、メモリに読み込んだ画像データをまとめて削除する関数です。
以下にサンプルコードを示します。
#include "DxLib.h" #define PI 3.1415926535897932384626433832795f // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE); if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } //キー取得用配列 char key[256]; //x座標 int x=300,y=360,y_prev=0,y_temp=0; //ジャンプしてるかのフラグ。 bool jflag=false; //グラフィックハンドル int gh=LoadGraph("char.png"); while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll(key)==0){ //通常描画 DrawGraph(10,10,gh,TRUE); if(key[KEY_INPUT_ESCAPE]==1){ break; } } //特定の画像データを削除する場合はDeleteGraph DeleteGraph(gh); //まとめて削除する場合はInitGraph //InitGraph(); DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
上記のコードはただ終了時に画像データを削除しているだけですので意味はありません。
この関数でいちいち削除しなくても、自動的にプログラム終了時にすべて削除されるからです。。
この関数の使いどころとしては、ステージ1からステージ2に移動する時に、
ステージ1の画像データはもう必要ないからメモリから削除したい!っていう時によく使います。
いつまでもメモリに読み込んだままにしておくと、リソースの無駄ですからね。
今回の説明は以上です。
>> 【単純に音声を鳴らす】に進む
>> ゲームプログラミング入門トップに戻る