/// <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])); }
/// <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; } }