Exemple #1
0
        /**
         * Removes walls between two specified nodes
         */
        private void Merge(NodeVO from, NodeVO to)
        {
            int dx = to.pos.x - from.pos.x;
            int dy = to.pos.y - from.pos.y;

            if (dx != 0)
            {
                if (dx > 0)
                {
                    to.RemoveWall(NodeVO.DIRECTION_LEFT_IDX);
                    from.RemoveWall(NodeVO.DIRECTION_RIGHT_IDX);
                }
                else
                {
                    to.RemoveWall(NodeVO.DIRECTION_RIGHT_IDX);
                    from.RemoveWall(NodeVO.DIRECTION_LEFT_IDX);
                }
            }
            else if (dy != 0)
            {
                if (dy > 0)
                {
                    to.RemoveWall(NodeVO.DIRECTION_DOWN_IDX);
                    from.RemoveWall(NodeVO.DIRECTION_UP_IDX);
                }
                else
                {
                    to.RemoveWall(NodeVO.DIRECTION_UP_IDX);
                    from.RemoveWall(NodeVO.DIRECTION_DOWN_IDX);
                }
            }
        }