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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
SKY

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

#1

投稿記事 by SKY » 11年前

[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ライブラリを使っております

翡翠
記事: 6
登録日時: 13年前

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

#2

投稿記事 by 翡翠 » 11年前

現在のコードでは、ループ内でhaikei関数が呼ばれるたびに、
画像の読み込みを行っています
画像の読み込みを行う関数を別に用意して、読み込み関数を一度呼んだ後は、
表示する関数のみループで回してみてください

SKY

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

#3

投稿記事 by SKY » 11年前

翡翠さんありがとうございます。解決することができました。
画像の読み込みはループの外に入れるべきなんですね、勉強になりました。


nil
記事: 428
登録日時: 12年前

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

#5

投稿記事 by nil » 11年前

SetDrawScreenはDxLib_Initのあとによばねばなりません

閉鎖

“C言語何でも質問掲示板” へ戻る