⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mymap.cpp

📁 一款45度2D游戏地图编辑器和大家一起分享啊!
💻 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 + -