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

📄 map.h

📁 成熟的RPG引擎,Flysky发布. 斜视角引擎.
💻 H
字号:
#pragma once

#include <vector>
using namespace std;

#include "../GameLib/CSurface.h"
const char MAP_HEAD[]="MhSoft MapFile V1.1 (2005)";  //V1.1的地图头文件
//阻碍标志定义(Block)
#define ID_BLOCK_F 0 //该CELL没有阻碍
#define ID_BLOCK_T 1 // 该CELL有阻碍
//陷阱标志定义(Hook)
#define ID_HOOK_F 0 //此格无陷阱
#define ID_HOOK_T 1 //此格有陷阱

class CMap
{
private:
	CFont MapFont; //字体引擎
public:
     int ID;  //地图编号
     char Name[32];        //地图名称(地图文件名)
     int Width;    //宽度(以格子为坐标) 斜
     int Height;   //高度(以格子为坐标) 斜
	 int MapStartX,MapStartY; //左上角坐标
	 stCell **Cell; //动态格子
     char FileName[32];    //当前地图文件名
     char ScrFName[32];    //地图初始化脚本文件名
     char Reserve[4];        //保留位,(我估计我们肯定还有想不到的一些信息,以后可以在这里添加,以免地图编辑完成之后,再修改Map_struct格式,破坏原先编好的地图文件)
	 LPDIRECTDRAWSURFACE7 lpDDS_MapBack; //地图临时保存点
	 LPDIRECTDRAWSURFACE7 lpDDS_TMouse; //Tile鼠标
	 int MapBx,MapBy; //用来优化机器
	 static int MapDMX;
	 static int MapDMY; //最大画出点Y
	 static int MapDSY; //最大画小点Y,为什么不画X点,因为Y点特殊
public:
	~CMap(); //只需要它
	int GetMapID();  //获取地图ID
	bool SetMapID();//设定地图ID
	bool LoadMap(char *Filename);
	bool NewMap(char *XName,int XID,int XWidth,int XHeight,char *ScrFNameX);
	bool SaveMap(char *Filename);
	bool ShowMap(LPDIRECTDRAWSURFACE7 MapDDS);
	//默认为天空层(2)
	void ShowTile(int ZC,int x,int y,LPDIRECTDRAWSURFACE7 MapDDS); //显示一个Tile
	bool IsBlock(int x,int y);
	void CBlockOn(bool FT,int x,int y);
	bool IsHook(int x,int y);   //判断是否有陷阱
	void CHookOn(bool FT,char SName[32],int x,int y);  //给一个位置加陷阱
	void CreateAPic(int Wei,int x,int y,int PicI,int x1,int y1);   //设定一个图块
	void ShowTileCPic(LPDIRECTDRAWSURFACE7 DDS,int CurposX,int CurposY);
	bool SetTileMouse(char *FileName); //设定鼠标Tile
public:
	POINT GetStartXY(int *x=NULL,int *y=NULL); //获取坐标
	BOOL SetStartXY(int x,int y); //设定坐标
};
	void MDToMI(int Dx,int Dy,int &Ix,int &Iy);
	void MIToMD(int Ix,int Iy,int &Dx,int &Dy);//坐标转换

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -