Example #1
0
        /// <summary>
        ///     使用字符串构造一个Sprite对象
        /// </summary>
        /// <param name="dataline"></param>
        public void Parse(string dataline)
        {
            if (!dataline.StartsWith("Sprite,") && !dataline.StartsWith("4,"))
            {
                throw new FailToParseException("该行的数据不适用。");
            }

            var data   = dataline.Split(',');
            var sprite = data[0];
            var suc    = int.TryParse(data[1], out var layer);

            if (!suc)
            {
                Layer = StoryBoardTools.GetLayerByString(data[1]);
            }
            else
            {
                Layer = (StoryBoardLayer)layer;
            }

            suc = int.TryParse(data[2], out var origin);
            if (!suc)
            {
                Origin = StoryBoardTools.GetOriginByString(data[2]);
            }
            else
            {
                Origin = (StoryBoardOrigin)origin;
            }
            Path     = data[3].Trim('\"');
            Position = new OsuPixel(double.Parse(data[4]), double.Parse(data[5]));
        }
Example #2
0
        /// <inheritdoc />
        public void Parse(string dataline)
        {
            if (!dataline.StartsWith("Animation,") && !dataline.StartsWith("6,"))
            {
                throw new FailToParseException("该行的数据不适用。");
            }

            var data = dataline.Split(',');
            var suc  = int.TryParse(data[1], out var layer);

            if (!suc)
            {
                Layer = StoryBoardTools.GetLayerByString(data[1]);
            }
            else
            {
                Layer = (StoryBoardLayer)layer;
            }

            suc = int.TryParse(data[2], out var origin);
            if (!suc)
            {
                Origin = StoryBoardTools.GetOriginByString(data[2]);
            }
            else
            {
                Origin = (StoryBoardOrigin)origin;
            }
            Path       = data[3].Trim('\"');
            Position   = new OsuPixel(double.Parse(data[4]), double.Parse(data[5]));
            FrameCount = double.Parse(data[6]);
            FrameDelay = double.Parse(data[7]);
            suc        = int.TryParse(data[8], out var loopType);
            if (!suc)
            {
                LoopType = StoryBoardTools.GetLoopTypeByString(data[8]);
            }
            else
            {
                LoopType = (StoryBoardAnimationLoopType)loopType;
            }
        }