現在、ゲームを作っていて
描画した画面をラスタースクロール処理
(画面を1ラインずつ動かす)
を実装してためしに動かしています、
以下コードです
void ScreenNoise()
{
int i;
int tempPat;
int tempScreen;
float x;
float theta;
tempScreen = MakeGraph( FIELD_MAX_X, FIELD_MAX_Y ) ; // 画面のサイズと同じサイズのグラフィックを作成
GetDrawScreenGraph( 0 , 0 , FIELD_MAX_X, FIELD_MAX_Y, tempScreen ) ; // 画面データの取りこみ
for ( i = 0; i < FIELD_MAX_Y; ++ i )
{
++theta;
x = FIELD_MAX_X / 2 + (float)( sin( theta * PI / 180 ) * 20 );
tempPat = DerivationGraph( 0, i, FIELD_MAX_X, 1, tempScreen ) ; //画像抜き出して新しく作成
DrawSprite( x, i, SET_CENTER, FIX, tempPat, DX_BLENDMODE_NOBLEND ); //自作の描画関数です
// 描画が終ったのでグラフィックをメモリ上から削除する
DeleteGraph( tempPat ) ;
}
DeleteGraph( tempScreen ) ;
}
これで動かしてみたところ、まあ処理が重たかったので、
今改善点を模索しているところなのですが
時間がたつにつれ更に重くなっているの気がするので
何かを解放し損ねているのでは?と考えたのです。
そこでMakeGraphなのですが、この関数で作った
画像データはDeletaGraph()で解放するものなのなのか?
という考えにいたったのですが、どうなんでしょうか?