How can I go about making a character increase movement speed but without it feeling like the player is on ice? I've typically just increased/decreased per frame with some value multiplied against time since last frame.
E.g., PlayerSpeed = PlayerSpeed + (movementValue * TimeElapsed)
Thus, the player moves faster, but it seems 'slippery'. I'm thinking that I could so something similar, but give it a ranged value instead - if the 'movement' speed falls within a certain range, player moves at a fixed rate X.
MOVEMENT TYPE MOVEMENT RANGE MOVEMENT VALUE
Idle 0 < n < 1 0
Walking 1 < n < 15 7.5
Jogging 15 < n < 30 22.5
Running 30 < n < 45 37.5
So, the player's 'movement' is at 18. Since it's between 15 and 30, the player moves at a fixed 22.5 units. When the player's 'movement' moves down to 12, he moves at just 7.5.
Does this sound accurate? I think it would get rid of the slipperyness in character movement...