ページ 11

シューティングゲームで背景をスクロールするときにものすごく重くなってしまいます

Posted: 2012年11月18日(日) 11:50
by SKY
[1] 質問文

今C++とDXライブラリを使ってシューティングゲームを作っていまして、その背景がスクロールする時ものすごく重くなってしまいます。
重くなるのは大体3回目のif文による画像の使い回し?あたりから重くなってしまいます。
スクロールの方法は1枚の画像を使って背景をスクロールしてます。画面サイズは640*480です。
ソースは問題の部分のみ書かせてもらいました。

コード:

int jx=0;
int jy=0;
int jimen;
void haikei()
{
	
	jimen=LoadGraph("画像パス");
	
	DrawGraph(jx,jy,jimen,FALSE);

	
	DrawGraph(jx,jy-460,jimen,FALSE);

	
	if(jy==470){
		 
		jy=10;
		 
	}
	
}

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

	ChangeWindowMode(TRUE);
	SetDrawScreen( DX_SCREEN_BACK ); 

        DxLib_Init();   
		
        
   while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0&& gpUpdateKey()==0 ){

                            haikei();
         }
         DxLib_End();
         return 0;
}
[2] 環境  
 [2.1] OS :windouws7
 [2.2] コンパイラ名 : VC++ 2010 EX,
[3] C,C++は初心者です。ライブラリはDXライブラリを使っております

Re: シューティングゲームで背景をスクロールするときにものすごく重くなってしまいます

Posted: 2012年11月18日(日) 12:04
by 翡翠
現在のコードでは、ループ内でhaikei関数が呼ばれるたびに、
画像の読み込みを行っています
画像の読み込みを行う関数を別に用意して、読み込み関数を一度呼んだ後は、
表示する関数のみループで回してみてください

Re: シューティングゲームで背景をスクロールするときにものすごく重くなってしまいます

Posted: 2012年11月18日(日) 12:12
by SKY
翡翠さんありがとうございます。解決することができました。
画像の読み込みはループの外に入れるべきなんですね、勉強になりました。

Re: シューティングゲームで背景をスクロールするときにものすごく重くなってしまいます

Posted: 2012年11月18日(日) 12:13
by SKY
解決ボタン押し忘れたので。

Re: シューティングゲームで背景をスクロールするときにものすごく重くなってしまいます

Posted: 2012年11月18日(日) 12:46
by nil
SetDrawScreenはDxLib_Initのあとによばねばなりません