Example #1
0
        /// <summary>
        /// 创建魔塔地图窗口
        /// </summary>
        public MainGame() : base(GameIni.WindowWidth, GameIni.WindowHeight) 
        {
            Solo = false;

            GuidePoint = new Background(MotaElement.指引指针, Coord.Empty);
            GuidePoint.PlayInterval = 100;
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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;
        }
Example #4
0
        /// <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;
        }