/// <summary> /// 计算F值。 /// </summary> /// <param name="p">给定节点。</param> /// <param name="end">目标点。</param> /// <param name="G">给定G值。</param> /// <returns>F值。</returns> protected virtual int F(AStarNode p, AStarNode end, int G) { int H = Math.Abs(end.X - p.X) + Math.Abs(end.Y - p.Y); return(G + H); }
/// <summary> /// 检查位置上是否是障碍物。 /// </summary> /// <param name="node">检测点。</param> /// <returns>是否是障碍物。</returns> protected virtual bool CheckBarrier(AStarNode node) { return(m_map[node.X][node.Y] != 0); }