/// <summary> /// 创建魔塔地图窗口 /// </summary> public MainGame() : base(GameIni.WindowWidth, GameIni.WindowHeight) { Solo = false; GuidePoint = new Background(MotaElement.指引指针, Coord.Empty); GuidePoint.PlayInterval = 100; }
/// <summary> /// 创建元素结点的副本 /// </summary> /// <param name="desBack">地表元素</param> /// <param name="desEvent">事件元素</param> public ElementNode(Background desBack, MapEvent desEvent) { //引用 _Back = desBack; _Event = desEvent; //深度拷贝 _Back = GetBack(Coord.Empty); _Event = GetEvent(Coord.Empty); }
/// <summary> /// 创建一个全空的楼层节点 /// </summary> /// <param name="index">楼层索引</param> /// <param name="name">楼层名称</param> /// <param name="maxCoord">楼层的坐标范围</param> /// <param name="nextFloor">下一层楼的索引,用于指向默认的下一层楼</param> /// <param name="preFloor">上一层楼的索引,用于指向默认的上一层楼</param> /// <param name="heroExistPos">人物初始出现的位置</param> /// <param name="downPos">下楼时出现的位置</param> /// <param name="autoSwicth">自动开关事件列表</param> private FloorNode(int index, string name, Coord maxCoord, int nextFloor, int preFloor, Coord heroExistPos, Coord downPos, List<Swicther> autoSwicth) { FloorIndex = index; FloorName = name; floorSize = maxCoord; BackMap = new Background[maxCoord.Row, maxCoord.Col]; EventMap = new MapEvent[maxCoord.Row, maxCoord.Col]; NextFloor = nextFloor; PreFloor = preFloor; HeroUpPos = heroExistPos; HeroDownPos = downPos; this.AutoSwicth = autoSwicth; }
/// <summary> /// 根据地图参数创建相应的地图元素 /// </summary> /// <param name="mapArgs">地图参数</param> /// <param name="existCoord">出现坐标</param> /// <returns>地图元素</returns> public static Background CreateInstance(XElement mapArgs, Coord existCoord) { int faceIndex; //图像索引 try { faceIndex = int.Parse(mapArgs.Element("faceIndex").Value); } catch (Exception) { throw new Exception("错误的地图类型 位置: " + existCoord.ToString()); } bool canDestory = false; if (mapArgs.Element("canDestory") != null) { canDestory = true; } Background oneBack = new Background((MotaElement)faceIndex, existCoord, canDestory); bool upAllow = false; if (mapArgs.Element("upAllow") != null) { upAllow = true; } bool downAllow = false; if (mapArgs.Element("downAllow") != null) { downAllow = true; } bool leftAllow = false; if (mapArgs.Element("leftAllow") != null) { leftAllow = true; } bool rightAllow = false; if (mapArgs.Element("rightAllow") != null) { rightAllow = true; } oneBack.PassLeft = leftAllow; oneBack.PassDown = downAllow; oneBack.PassRight = rightAllow; oneBack.PassUp = upAllow; return oneBack; }