walker[0]~[6]に入れた絵を順番に表示することで歩くアニメーションを作り、それをDrawExtendGraph関数を利用しだんだん拡大することで、画面奥から手前に歩いてくるように画面に表示しようとしています。
しかし狙ったとおりに画面に表示はされるのですが、画像の切り替えがうまくいかないようでガタガタして見苦しいです。
改善するにはどうすればよいでしょうか?よろしくお願いします
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow ){
//画面設定とか
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1 ) return -1;
SetDrawScreen(DX_SCREEN_BACK);
SetDrawMode(DX_DRAWMODE_BILINEAR);
int x1 = 30, y1 = 280, x2 = 130, y2 = 380, count = 0, i = 0;
//画像読み込み
int walker[7];
walker[0] = LoadGraph("image/walker0.png");
walker[1] = LoadGraph("image/walker1.png");
walker[2] = LoadGraph("image/walker2.png");
walker[3] = LoadGraph("image/walker3.png");
walker[4] = LoadGraph("image/walker4.png");
walker[5] = LoadGraph("image/walker5.png");
walker[6] = LoadGraph("image/walker6.png");
//ループ
while(1){
ClearDrawScreen();
//画面を白に
DrawBox(0, 0, 640, 480, GetColor(255, 255, 255), TRUE);
//画像の上辺が画面上端に来たら終了
if(y1 > 0){
DrawExtendGraph(x1+40, y1, x2-40, y2, walker[i%7], TRUE); //!?画像表示がガタガタする
y1 -= 1;
y2 += 1;
count++;
i++;
if(count == 5){ //サイズ調整
x1 -= 1;
x2 += 1;
count = 0;
}
}else{
break;
}
ScreenFlip();
//終了処理
if(ProcessMessage() == -1) break;
if(CheckHitKey(KEY_INPUT_ESCAPE) == 1) break;
}
DxLib_End();
return 0;
}