#include "DxLib.h"
typedef struct{
int x;
int y;
int botan,zahyou_flag;
int muki;
int img[2];
int d;
}waku;
int hantei[15][20] = {
{ 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 },//1
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//2
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//3
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//4
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//5
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//6
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//7
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//8
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//9
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//10
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//11
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//14
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//14
{ 15,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,15 },//14
{ 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 },//15
// 1,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10,11,12,13,14,15,16,17,18,19,20
};
int can_or_cannot(int x,int y,int muki){//進めるかを判定する
//ここから下は壁の方向文//
switch(muki){
case 0://上方向//
if((hantei[y/32][x/32]&1)!=0){return 1;}
else{return 0;}
break;
case 1://下方向//
if((hantei[y/32][x/32]&2)!=0){return 1;}
else{return 0;}
break;
case 2://左方向//
if((hantei[y/32][x/32]&4)!=0){return 1;}
else{return 0;}
break;
case 3://右方向 //
if((hantei[y/32][x/32]&8)!=0){return 1;}
else{return 0;}
break;
}
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
int image[16];
char Key[256];
hantei;
waku waku1,waku2;
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK
|| DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理
LoadGraphScreen( 0 , 0 , "000.bmp" , FALSE ) ; //バック画面
waku1.x=2;
waku1.y=2;
waku2.x=2;
waku2.y=2;
LoadDivGraph( "abcd.png",2,2,1,32,32,image) ;//枠画像を分割してimage配列に保存
if(waku1.x%32==0 && waku1.y%32==0){ //座標がで割り切れたら入力可能\par
waku1.zahyou_flag=1; //歩くフラグを立てる。
if ( Key[ KEY_INPUT_UP ] == 1 ) //上ボタンが押されたら
waku1.muki=0; //上向きフラグを立てる
else if( Key[ KEY_INPUT_LEFT ] == 1 ) //左ボタンが押されたら
waku1.muki=1; //左向きフラグを立てる
else if( Key[ KEY_INPUT_DOWN ] == 1 ) //下ボタンが押されたら
waku1.muki=2; //下向きフラグを立てる
else if( Key[ KEY_INPUT_RIGHT] == 1 ) //右ボタンが押されたら
waku1.muki=3; //右向きフラグを立てる
else //何のボタンも押されてなかったら
waku1.zahyou_flag=0; //歩かないフラグを立てる
}
if(waku1.zahyou_flag==1){ //枠フラグが立っていたら
if (waku1.muki==0) //上向きならch.y座標を減らす
waku1.y--;
else if(waku1.muki==1) //左向きならch.x座標を減らす
waku1.x--;
else if(waku1.muki==2) //下向きならch.y座標を増やす
waku1.y++;
else if(waku1.muki==3) //右向きならch.x座標を増やす
waku1.x++;
}
waku1.img[2]=image[(waku1.x%32+waku1.y%32)/8 + waku1.muki*4];//画像をセット
DrawGraph( waku1.x,waku1.y,waku1.img[2],TRUE ) ;//画像を描画
WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}