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);
        }
Beispiel #5
0
 public void Add(SpartaAbstractAnimation animation)
 {
     animationsList.Add(animation);
 }