(以下ソースです)
#include "DxLib.h"
//画面の大きさ
#define WINDOW_SIZE_X 640
#define WINDOW_SIZE_Y 480
//表示するチップの最大数
#define MAP_WIDTH 20
#define MAP_HEIGHT 15
//全体のチップの数
#define MAP_MAX_WIDTH 40
#define MAP_MAX_HEIGHT 15
//マップチップの大きさ
#define MAPCHIP_SIZE 32
typedef struct{
int x,y,img;
}ch_t;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
char Key[256];
ch_t ch;
if(ChangeWindowMode(TRUE)!=DX_CHANGESCREEN_OK||DxLib_Init()==-1)return-1;
ch.x =32;
ch.y =416;
SetDrawScreen( DX_SCREEN_BACK );
int img_box[2];
img_box[1] = LoadGraph("box.jpg");//茶の■を読み込み
img_box[2] = LoadGraph("box2.jpg");//緑の■を読み込み
int chara;
chara = LoadGraph("char.jpg");//青の■(キャラ)を読み込み
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
int map[MAP_MAX_HEIGHT][MAP_MAX_WIDTH]={
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
};
for(int b=0; b<MAP_MAX_HEIGHT;b++){
for(int a=0; a<MAP_MAX_WIDTH;a++)
switch(map[a]){
case 1:
DrawRectGraph(a*32,b*32,0,0,32,32,img_box[1],TRUE,FALSE);//茶の■を設置
break;
case 2:
DrawRectGraph(a*32,b*32,0,0,32,32,img_box[2],TRUE,FALSE);//緑の■を設置
break;
}
}
if(Key[KEY_INPUT_RIGHT]==1)
ch.x++;
else if(Key[KEY_INPUT_LEFT]==1)
ch.x--;
ch.img=chara;//青の■(キャラ)
DrawGraph(ch.x,ch.y,ch.img,TRUE);//キャラを描画
ScreenFlip();
}
DxLib_End();
return 0;
}
※1と2の画像に当たり判定はつけていません
初めての投稿で至らない点もあるとは思いますが、お手柔らかに御指導の程宜しくお願い致します。
連投すみませんでした。