using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CommonAI.RTS.Manhattan { /// <summary> /// 曼哈顿寻路基础数据结构 /// </summary> public interface IManhattanMap : IDisposable { float TotalWidth { get; } float TotalHeight { get; } /// <summary> /// 获取地图X格子数 /// </summary> /// <returns></returns> int XCount { get; } /// <summary> /// 获取地图Y格子数 /// </summary> /// <returns></returns> int YCount { get; } /// <summary> /// 获取地图每格宽 /// </summary> /// <returns></returns> float CellW { get; } /// <summary> /// 获取地图每格高 /// </summary> /// <returns></returns> float CellH { get; } /// <summary> /// 测试是否有阻挡,true=不能通过 /// </summary> /// <param name="bx"></param> /// <param name="by"></param> /// <returns>true=不能通过 ;false=可以通过</returns> bool TestBlock(int bx, int by); /// <summary> /// 测试值是否有阻挡,true=不能通过 /// </summary> /// <param name="value">碰撞值</param> /// <returns>true=不能通过 ;false=可以通过</returns> bool TestBlockValue(int value); /// <summary> /// 获取地块值 /// </summary> /// <param name="bx"></param> /// <param name="by"></param> /// <returns></returns> int GetValue(int bx, int by); /// <summary> /// 设置地块值 /// </summary> /// <param name="bx"></param> /// <param name="by"></param> /// <param name="value"></param> /// <returns>是否发生变化</returns> bool SetValue(int bx, int by, int value); /// <summary> /// 创建地图节点 /// </summary> /// <returns></returns> AstarManhattan.MMapNode CreateMapNode(); } }