📄 mymap.cpp
字号:
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// 保存地图信息的类,很简单,只做演示
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#include "stdafx.h"
#include "45MapMaker.h"
#include "MyMap.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMyMap::CMyMap()
{
height = width = 0;
arr1 = NULL;
arr2 = NULL;
}
void CMyMap::set(int x,int y,int a,int b)//地图宽度,地图高度,图块宽度,图块高度
{
height =y;
width =x;
blockw = a;
blockh = b;
arr1 = new short int[width*height];
arr2 = new short int[width*height];
for(int i=0;i<width*height;i++)
{
*(arr1+i)=1;
*(arr2+i)=0;
}
}
bool CMyMap::LoadMap(CString file) //读取文件
{
CFile pf;
short int w,h;
if(!pf.Open(file,CFile::modeRead))//只读
{
AfxMessageBox("打开文件失败");
return 0;
}
pf.Read(&w,sizeof(short int));
pf.Read(&h,sizeof(short int));
pf.Read(&blockw,sizeof(short int));
pf.Read(&blockh,sizeof(short int));
width = w;
height = h;
if(arr1!=NULL)
delete[] arr1;
if(arr2!=NULL)
delete[] arr2;
arr1 = new short int[width*height];
arr2 = new short int[width*height];
pf.Read((arr1),width*height*sizeof(short int));
pf.Read((arr2),width*height*sizeof(short int));
pf.Close();
return true;
}
bool CMyMap::SaveMap(CString file)
{
CFile pf;
if(!pf.Open(file,CFile::modeCreate|CFile::modeWrite)){
AfxMessageBox("保存失败!");
return 0;
}
pf.Write(&width,sizeof(short int));
pf.Write(&height,sizeof(short int));
pf.Write(&blockw,sizeof(short int));
pf.Write(&blockh,sizeof(short int));
pf.Write(arr1,height*width*sizeof(short int));
pf.Write(arr2,height*width*sizeof(short int));
pf.Close();
return true;
}
CMyMap::CMyMap(CMyMap& a)
{
height = a.height;
width = a.width;
blockw = a.blockw;
blockh = a.blockh;
arr1 = new short int[width*height];
arr2 = new short int[width*height];
memcpy(arr1,a.arr1,height*width*sizeof(short int));
memcpy(arr2,a.arr2,height*width*sizeof(short int));
}
CMyMap::~CMyMap()
{
if(arr1!=NULL)
delete[] arr1;
if(arr2!=NULL)
delete[] arr2;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -