こんにちわ。今日も適当にいろいろやってみようかなと思っていたらわからないことがありました。
下のようにただ単に左右にキャラが移動するようなプログラムを書いてみたんですが、
背景の画像を入れたいんですけど、
whileの中に LoadGraphScreen(0,0,"haikei5.png",FALSE);
を入れると、なんだか動作が重くなります。
かといってwhileの上に LoadGraphScreen(0,0,"haikei5.png",FALSE);
を書くと、一瞬で消えてしまいます。
ちゃんと表示するにはどうしたらいいでしょうか?
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //初期化処理
typedef struct{
int x,y,gazou;
}xh_t;
char Key[256];
int gazou[16];
xh_t xh;
xh.x = 0;
xh.y = 350;
SetDrawScreen( DX_SCREEN_BACK ); //裏画面に設定
LoadDivGraph("char.png",16,4,4,32,32,gazou);
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されていない
if(Key[KEY_INPUT_LEFT]==1)
xh.x -= 3;
if(Key[KEY_INPUT_RIGHT]==1)
xh.x += 3;
xh.gazou = gazou[8];
LoadGraphScreen(0,0,"haikei5.png",FALSE); //背景(どこに入れたらよいのやら・・・)
DrawGraph(xh.x , xh.y , xh.gazou , TRUE);
ScreenFlip();//裏画面を表画面に反映
}
DxLib_End();
return 0;
}
背景の画像について
Re:背景の画像について
LoadGraphScreenは毎回読み込みをしてしまうので処理は遅くなるようです。
ゲームプログラミングの館の
14. メモリに画像を読み込んで表示する。 に詳しく書いてあります
ゲームプログラミングの館の
14. メモリに画像を読み込んで表示する。 に詳しく書いてあります