Avoid character slowing down when moving diagonally

One option is to add an arrow to the character that represents the direction, then, if you want to add the movement, you just move the character the desired amount of distance in the arrow’s direction vector.