I am trying to implement air strafing into my game, but I just can't get it to work. I am using lerp for the base movement mechanics (walk, run, crouch, slide) in the game. However, when the player is in the air, I set the friction (the lerp speed) to zero. Then, I have this piece of code:
Friction = 0
current_speed = P_vel.dot(move_direction)
strafe_speed = clamp(Max_Speed - current_speed, 0, delta)
P_vel += strafe_speed * move_direction
The problem seems to be that the player is changing their move direction too fast.