public void Update(GameTime gameTime) { if (bAnimating) { if (CurrentAnimation == null) { if (faAnimations.Count > 0) { string[] sKeys = new string[faAnimations.Count]; faAnimations.Keys.CopyTo(sKeys, 0); CurrentAnimation = sKeys[0]; } else { return; } } } CurrentFrameAnimation.Update(gameTime); if (!String.IsNullOrEmpty(CurrentFrameAnimation.NextAnimation)) { if (CurrentFrameAnimation.PlayCount > 0) { CurrentAnimation = CurrentFrameAnimation.NextAnimation; } } }
public void Update(GameTime gameTime) { // Don't do anything if the sprite is not animating if (bAnimating) { // If there is not a currently active animation if (CurrentFrameAnimation == null) { // Make sure we have an animation associated with this sprite if (faAnimations.Count > 0) { // Set the active animation to the first animation // associated with this sprite string[] sKeys = new string[faAnimations.Count]; faAnimations.Keys.CopyTo(sKeys, 0); CurrentAnimation = sKeys[0]; } else { return; } } // Run the Animation's update method CurrentFrameAnimation.Update(gameTime); // Check to see if there is a "followup" animation named for this animation if (!String.IsNullOrEmpty(CurrentFrameAnimation.NextAnimation)) { // If there is, see if the currently playing animation has // completed a full animation loop if (CurrentFrameAnimation.PlayCount > 0) { // If it has, set up the next animation CurrentAnimation = CurrentFrameAnimation.NextAnimation; } } } }