Ejemplo n.º 1
0
 public bool CheckFrameUpdate()
 {
     if (!_playing || _frameTimer.IsActive)
     {
         return(false);
     }
     _currentFrameIndex++;
     if (CurrentFrame != null)
     {
         _frameTimer.StartNewTime(_animation.FrameTime * CurrentFrame.Length);
         return(true);
     }
     if (!_animation.IsComplete(_currentFrameIndex))
     {
         return(true);
     }
     if (_animation.Looping)
     {
         _currentFrameIndex = 0;
         _frameTimer.StartNewTime(_animation.FrameTime * CurrentFrame.Length);
         return(true);
     }
     _playing = false;
     return(false);
 }
Ejemplo n.º 2
0
            public void UpdateSpriteFrame(float time)
            {
                if (!_playing || !_activated || time < _nextUpdateTime)
                {
                    return;
                }
                _currentFrameIndex++;
                var cf = CurrentFrame;

                if (cf != null)
                {
                    StartNewTime(_animation.FrameTime * cf.Length, time);
                    _renderer.sprite = _animation.GetSpriteFrame(FrameIndex);
                    return;
                }
                if (!_animation.IsComplete(_currentFrameIndex))
                {
                    return;
                }
                if (_animation.Looping)
                {
                    _currentFrameIndex = 0;
                    StartNewTime(_animation.FrameTime * cf.Length, time);
                    _renderer.sprite = _animation.GetSpriteFrame(FrameIndex);
                    return;
                }
                _playing = false;
            }
 private bool CheckFrameUpdate()
 {
     if (_state != State.Playing || _frameTimer.IsActive || _currentAnim == null || Finished)
     {
         return(false);
     }
     _currentFrameIndex++;
     if (CurrentFrame != null)
     {
         if (CurrentFrame.HasEvent)
         {
             if (CurrentFrame.Event == AnimationFrame.EventType.Default)
             {
                 DefaultEventTriggered = true;
                 CurrentAnimationEvent = AnimationEvents.Default;
             }
             else
             {
                 CurrentAnimationEvent = CurrentFrame.EventName;
             }
             _eventFrame = CurrentFrame;
         }
         _frameTimer.StartNewTime(_currentAnim.FrameTime * CurrentFrame.Length);
         return(true);
     }
     if (!_currentAnim.IsComplete(_currentFrameIndex))
     {
         return(true);
     }
     Finished = true;
     _state   = State.None;
     if (_animationQueue.Count > 0)
     {
         Play(_animationQueue.Dequeue());
         return(true);
     }
     if (_currentAnim.Looping)
     {
         _currentFrameIndex = 0;
         _frameTimer.StartNewTime(_currentAnim.FrameTime * CurrentFrame?.Length ?? 1);
         return(true);
     }
     return(false);
 }