📄 cfindpath.h
字号:
//A*寻路算法
//作者:吴振华(kylinx)(中国科大01级11系)
//E-mail:game-diy@163.com
//Created 2003/6/27 by Kylinx
#ifndef LOA_FIND_PATH_H_
#define LOA_FIND_PATH_H_
#define LOA_MAX_DISTANCE 65535 //两点间最大距离
#include<windows.h>
#include"klds.h"
struct STPathTree
{
int nMapX; //地图上的x坐标
int nMapY; //地图上的y坐标
int nSearchDepth; //搜索的深度
STPathTree*pParent; //父节点
STPathTree()
{
pParent=NULL;
}
STPathTree(int x,int y,int depth,STPathTree*Parent)
{
nMapX=x;
nMapY=y;
nSearchDepth=depth;
this->pParent=Parent;
}
};
struct STPath
{
int nLength;
POINT*pPos;
STPath()
{
nLength=0;
pPos=NULL;
}
~STPath()
{
nLength=0;
if(pPos)
{
delete [] pPos;
pPos=NULL;
}
}
};
class CMap;
class CLog;
class CAStarFindPath
{
CLog *m_pLog; //日志
CMap *m_pMap; //地图数据
int **m_ppBest; //历史最好纪录
CLagQueue<STPathTree*> *m_pOpen; //Open表
KGDStack<STPathTree*> *m_pClose; //Close表
int m_nSourX,m_nSourY;
int m_nDestX,m_nDestY;
int Evaluation(int x,int y); //评估函数
BOOL TryTile(int x,int y,STPathTree*pRoot); //尝试下一个
void Release(); //释放
public:
CAStarFindPath();
virtual ~CAStarFindPath();
BOOL FindPath(CLog*pLog,CMap*pMap,int SourX,int SourY,int DestX,int DestY,STPath&Path);
//从SourX,SourY点找一条最短路径到DestX,DestY
//路径保存在pPath中
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -