private void SetState(SpriteSheetAnimationStateData state) { if (_currentState != state) { _currentState = state; _currentFrame = state.Frames[0]; } }
public void Update(UpdateTime updateTime) { _accumTime += updateTime.Delta; var frameDuration = _currentFrame.Duration; while (_accumTime >= frameDuration) { _currentFrame = _currentState.Frames[(_currentFrame.IndexInState + 1) % _currentState.Frames.Length]; _accumTime -= frameDuration; } }