protected void AnimationCompleted(SpartaAbstractAnimation nextAnimation) { int count = animations.Count; if (currentAnimationIndex + 1 == count) { State = SpartaAnimationState.Stopped; if (Finished != null) { Finished(); } if (InternalFinished != null) { InternalFinished(); } } else { currentAnimationIndex++; nextAnimation.Direction = this.Direction; nextAnimation.Begin(); } }
public void Remove(SpartaAbstractAnimation animation) { if (animation == null || State == SpartaAnimationState.Running || State == SpartaAnimationState.Paused) { return; } animations.Remove(animation); }
public override void Update(GameTime gameTime) { if (State != SpartaAnimationState.Running || animations.Count == 0) { return; } SpartaAbstractAnimation currentAnimation = animations.Array[currentAnimationIndex]; if (currentAnimation == null) { return; } currentAnimation.Update(gameTime); }
public void Add(SpartaAbstractAnimation nextAnimation) { if (nextAnimation == null || State == SpartaAnimationState.Running || State == SpartaAnimationState.Paused) { return; } SpartaAbstractAnimation lastAnimation = this.LastAnimation(); if (lastAnimation != null) { lastAnimation.InternalFinished = () => { AnimationCompleted(nextAnimation); }; } animations.Add(nextAnimation); }
public void Add(SpartaAbstractAnimation animation) { animationsList.Add(animation); }