private void CreateFlipbookInstances() { FlipbookAnimationList.Clear(); foreach (AnimationInstance fbI in AnimationCycle) { FlipbookAnimationList.Add(FlipbookAnimation.GetInstance(fbI)); } }
public override void Draw(GameTime GameTime, SpriteBatch SpriteBatch) { FlipbookAnimation fbA = FlipbookAnimationList[currentAnimatedInstanceIndex]; int currentFrameIndex = fbA.GetNextAnimationIndex(GameTime); if (fbA.IsLastFrame && AnimationCycle != null && AnimationCycle.Count > 1) { if (!repeatAnimationCycle) { FlipbookAnimationList.Remove(fbA); AnimationCycle.Remove(fbA.AnimationInstance); } currentAnimatedInstanceIndex = 0; } SourceRectangle = new Rectangle(currentFrameIndex % framesPerLine * SpriteWidth, currentFrameIndex / framesPerLine * SpriteHeight, SpriteWidth, SpriteHeight); base.Draw(GameTime, SpriteBatch); }