KNpcFindPath.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //---------------------------------------------------------------------------
  2. // Sword3 Engine (c) 1999-2000 by Kingsoft
  3. //
  4. // File: KNpcFindPath.h
  5. // Date: 2002.01.06
  6. // Code: 边城浪子
  7. // Desc: Obj Class
  8. //---------------------------------------------------------------------------
  9. #ifndef KNPCFINDPATH_H
  10. #define KNPCFINDPATH_H
  11. class KNpcFindPath
  12. {
  13. public:
  14. int m_NpcIdx; // 这个寻路是属于哪个 npc 的
  15. int m_nDestX; // 目标点坐标 x
  16. int m_nDestY; // 目标点坐标 y
  17. int m_nFindTimer; // 找路,一段时间以后没找到就不找了
  18. int m_nMaxTimeLong; // 找多长时间的路
  19. int m_nFindState; // 当前是否处于找路状态
  20. int m_nPathSide; // 往哪个方向找
  21. int m_nFindTimes; // 朝一个目标点找路的次数
  22. public:
  23. KNpcFindPath();
  24. // 功能:初始化 nNpc :这个寻路是属于哪个 npc 的
  25. void Init(int nNpc);
  26. // 功能:传入当前坐标、方向、目标点坐标、速度,寻路找到下一步应该走的方向
  27. // 返回值;如果返回false:不能走了;true ,找到一个方向,方向值放在pnGetDir (按64方向)
  28. int GetDir(int nXpos,int nYpos, int nDir, int nDestX, int nDestY, int nMoveSpeed, int *pnGetDir);
  29. // 64 方向转换为 8 方向
  30. int Dir64To8(int nDir);
  31. // 8 方向转换为 64 方向
  32. int Dir8To64(int nDir);
  33. // 判断两点间的直线距离是否大于或等于给定距离
  34. BOOL CheckDistance(int x1, int y1, int x2, int y2, int nDistance);
  35. // 判断某个点是否是障碍
  36. int CheckBarrier(int nChangeX, int nChangeY);
  37. };
  38. #endif