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); }
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); }