一定区間を割り算の余りを使って求めるところですが、
左または右キーを一つだけ受け入れるならif文を一つ作ってキー入力を待つ関数を
入れればよいことはわかりました。
しかし、if文を複数用意すると、画像が区間移動しなくなり、一切動かなくなってしまいました。
関数や構造体を試し、お手本を見ながらやったのですが結局だめでした。
コードは背景とキャラクタを表示させます。キャラクタを左右キーで動かすためのコードを作りました。
どうしたらよいのでしょうかご指摘よろしくお願いします。
#include"DxLib.h"
typedef struct person{
int x,y; }ch_t;
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE ),DxLib_Init(),SetDrawScreen( DX_SCREEN_BACK);//ウィンドウモードの変更と初期化と裏画面設定
ch_t ch={50,300};//構造体初期化
int Handle[2];
Handle[0] = LoadGraph("画像");//画像のロード
Handle[1] = LoadGraph("画像") ;
// while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 )
{
if( ProcessMessage() != 0 )
{ break;}
if(CheckHitKey(KEY_INPUT_RIGHT) == 1){//右キーの入力待ち
ch.x= ch.x+2;
}else if(ch.x%32!=0){
ch.x= ch.x+2; }
if(CheckHitKey(KEY_INPUT_LEFT) == 1){左キーの入力待ち
ch.x= ch.x-2;
}else if(ch.x%32!=0){
ch.x= ch.x-2; }
DrawGraph(0,0,Handle[0],TRUE);
DrawGraph(ch.x,ch.y,Handle[1],TRUE);
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}