public void AddFrameAnimation(string name, int fps, FrameSet set, bool loop) { if (_frameAnimations.ContainsKey(name)) { throw new ArgumentException(string.Format("Frame Animation {0} Already Exists", name)); } FrameAnimation anim = new FrameAnimation(name, _manager) { AnimationFrameSet = set, FramesPerSecond = fps, Duration = (float)(set.Count) / (float)(fps), Loop = loop, RepeatCount = loop ? int.MaxValue : 0, Apply = (v) => { if (v != null) { _frame.SourceRectangle = v.SourceRectangle; _frame.Center = v.Center; } }, // the most important part }; _frameAnimations.Add(name, anim); }
// Frame Set format needs to be {AnimationName}_{FrameIndex} for this to work public void AddFrameAnimation(string name, int fps, FrameSet set) { AddFrameAnimation(name, fps, set, true); }