>> ゲームプログラミング入門トップに戻る
今回はメモリに読み込んだ画像データを削除する方法について説明します。
音声データの時もメモリに読み込んだデータを削除する関数がありましたが、
画像データの場合にも専用の関数があります。
関数は、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の画像データはもう必要ないからメモリから削除したい!っていう時によく使います。
いつまでもメモリに読み込んだままにしておくと、リソースの無駄ですからね。
今回の説明は以上です。
>> 【単純に音声を鳴らす】に進む
>> ゲームプログラミング入門トップに戻る













