struct Map{
int MapX,MapY;
int Mapp[1000][1000]; //壁か床か判定みたいな
int Mapchip[1000][1000]; //ちっぷれいやー1
int Mapchip2[1000][1000]; //チップイレイヤー2
int ua; //なんだこれ
int MapG[MAPCHIP_MAX]; //作ったのだいぶ昔だからこれが何だか忘れたわ
int MapGH; //シラネ
char MapGHC[31];
int MAPCHIP_SIZE ;
};
void MapLoad(){
FILE *fp ;
char fname[30];
InitGraph();
sprintf(fname,"ここにファイルパス",); //※マップエディタで設定したマップチップのパスを読み込むので、mapのファイルがあるひとつ前のところに保存しておきましょう。
// マップファイルを開く
fp = fopen( fname , "rb" ) ;
if( fp != NULL )
{
fread( &mapdata , sizeof( mapdata ) , 1 , fp ) ;
mapdata.MapGH=LoadGraph(mapdata.MapGHC);
do{
int W,H;
GetGraphSize( mapdata.MapGH , &W , &H ) ;
if(xxx*mapdata.MAPCHIP_SIZE<W){
xxx++;
}
if(yyy*mapdata.MAPCHIP_SIZE<H){
yyy++;
}
if(yyy*mapdata.MAPCHIP_SIZE>=H&&xxx*mapdata.MAPCHIP_SIZE>=W){
break;
}
}while(ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0);
LoadDivGraph( mapdata.MapGHC , xxx*yyy , xxx , yyy , mapdata.MAPCHIP_SIZE , mapdata.MAPCHIP_SIZE , mapdata.MapG ) ;
// ファイルを閉じる
fclose( fp ) ;
}
}
for(int i = 0 ; i<mapdata.MAPCHIP_SIZE*4+30 ; i++ ){
for(int j = 0 ; j<30 ; j++ ){
if(mapdata.Mapp[i+x2][j+y2]==1||mapdata.Mapp[i+x2][j+y2]==2){
DrawBox(i*mapdata.MAPCHIP_SIZE,j*mapdata.MAPCHIP_SIZE,i*mapdata.MAPCHIP_SIZE+mapdata.MAPCHIP_SIZE,j*mapdata.MAPCHIP_SIZE+mapdata.MAPCHIP_SIZE,GetColor(255,255,255),TRUE);
}else{
}
if(mapdata.Mapchip[i+x2][j+y2]==chip*1000){
DrawGraph( i*mapdata.MAPCHIP_SIZE , j*mapdata.MAPCHIP_SIZE , mapdata.MapG[chip] , TRUE ) ;
}
if(mapdata.Mapchip[i+x2][j+y2]!=chip*1000){
DrawGraph( i*mapdata.MAPCHIP_SIZE , j*mapdata.MAPCHIP_SIZE , mapdata.MapG[mapdata.Mapchip[i+x2][j+y2]] , TRUE ) ;
}
if(mapdata.Mapchip2[i+x2][j+y2]==chip*1000){
DrawGraph( i*mapdata.MAPCHIP_SIZE , j*mapdata.MAPCHIP_SIZE , mapdata.MapG[chip] , TRUE ) ;
}
if(mapdata.Mapchip2[i+x2][j+y2]!=chip*1000&&mapdata.Mapchip2[i+x2][j+y2]!=-1){
DrawGraph( i*mapdata.MAPCHIP_SIZE , j*mapdata.MAPCHIP_SIZE , mapdata.MapG[mapdata.Mapchip2[i+x2][j+y2]] , TRUE ) ;
}
if(mapdata.Mapp[i+x2][j+y2]==1||mapdata.Mapp[i+x2][j+y2]==2){
DxLib::DrawFormatString(i*mapdata.MAPCHIP_SIZE,j*mapdata.MAPCHIP_SIZE,GetColor(0,0,0),"壁");
}else{
if(mapdata.Mapp[i+x2][j+y2]==3||mapdata.Mapp[i+x2][j+y2]==0){
DxLib::DrawFormatString(i*mapdata.MAPCHIP_SIZE,j*mapdata.MAPCHIP_SIZE,GetColor(255,255,255),"床");
}else{
DxLib::DrawFormatString(i*mapdata.MAPCHIP_SIZE,j*mapdata.MAPCHIP_SIZE,GetColor(255,255,255),"Lv%d",mapdata.Mapp[i+x2][j+y2]);
}
}
}
}
コメントをかく