現在「19. キャラをキー入力によって移動させる」をやっているのですが、
キャラが動いてくれません。
↓がプログラムです
#include "DxLib.h"
typedef struct{
int x, y, img;
}ch_t;
int image[16];
char Key[256];
ch_t ch;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
// ウィンドウモードで起動する
ChangeWindowMode(TRUE);
// DXライブラリの初期化
if(DxLib_Init() == -1 ) return -1;
// 描画先画面を裏画面にする
SetDrawScreen( DX_SCREEN_BACK );
while( ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0 )
{
// 裏画面の内容を表画面に反映する
ScreenFlip();
// 画面全体を初期化
ClearDrawScreen();
ch.x = 320;
ch.y = 240;
LoadDivGraph( "char.png", 16, 4, 4, 32, 32, image );
if( Key[ KEY_INPUT_RIGHT ] == 1 ) // 右ボタンが押されたら
ch.x++; // xの値を1増やす
else if(ch.x%32 != 0) // 32で割り切れない区間はオートで進む
ch.x++;
ch.img = image[12];
DrawGraph( ch.x, ch.y, ch.img, TRUE); // [12]の画像を描画
}
// DXライブラリの終了
DxLib_End();
return 0;
}
ご指摘がありましたら、よろしくお願いします。
キャラクタ移動について
Re:キャラクタ移動について
> ch.x = 320;
> ch.y = 240;
↑がループ内にあるから。
> LoadDivGraph( "char.png", 16, 4, 4, 32, 32, image );
これもループ内で何回も実行してはいけません。
変数の初期化や画像のロードはループに入る前に行いましょう。
> ch.y = 240;
↑がループ内にあるから。
> LoadDivGraph( "char.png", 16, 4, 4, 32, 32, image );
これもループ内で何回も実行してはいけません。
変数の初期化や画像のロードはループに入る前に行いましょう。