//复制地图对象- 用于做副本使用 public GameMap Clone() { GameMap new_map = new GameMap(this.info); new_map.mnWidth = this.mnWidth; new_map.mnHeight = this.mnHeight; new_map.mPath = new MapPath(mnHeight, mnWidth); for (uint i = 0; i < mnHeight; i++) { for (uint j = 0; j < mnWidth; j++) { new_map.GetMapGridInfo()[j, i] = this.mMapGridInfo[j, i]; if (new_map.GetMapGridInfo()[j, i].Mask > 0) { new_map.mPath.SetPointMask((short)j, (short)i, MapPath.MASK_CLOSE); } } } foreach (BaseObject obj in this.GetAllObject().Values) { new_map.AddObject(obj, obj.GetGameSession()); } return(new_map); }
//复制地图对象- 用于做副本使用 public GameMap Clone() { GameMap new_map = new GameMap(this.info); new_map.mnWidth = this.mnWidth; new_map.mnHeight = this.mnHeight; new_map.mPath = new MapPath(mnHeight, mnWidth); for (uint i = 0; i < mnHeight; i++) { for (uint j = 0; j < mnWidth; j++) { new_map.GetMapGridInfo()[j, i] = this.mMapGridInfo[j, i]; if (new_map.GetMapGridInfo()[j, i].Mask > 0) { new_map.mPath.SetPointMask((short)j, (short)i, MapPath.MASK_CLOSE); } } } foreach (BaseObject obj in this.GetAllObject().Values) { new_map.AddObject(obj, obj.GetGameSession()); } return new_map; }