Question about deceleration for a dash mechanic in a Platformer

Godot Version

4.2.1

Question

I have this issue that keeps popping up throughout development that I just can’t seem to solve.

I have a dash mechanic in my game that can be performed in all 360 degrees of direction. However, when I dash more vertically than horizontally, when my dash ends (when the sparkles stop in the video), the player keeps gaining height.

Dashing Example

Ideally, the player would stop at a fixed rate regardless of direction of dash.

Why is this happening?
Because the force that is keeping the player down (Gravity) is way lower than the force keeping the player from moving horizontally (call it Drag).
These forces work well for other mechanics, but keep me from making good dash mechanics, knockbacks that can be performed in any direction, or other “impulses” as you can imagine.

Anyone got an idea on how to solve this?

I’m not to sure of what the problem is, but the player seems to be following a pointer which stays on top of the player at all times. Have you tried stopping the player from following the pointer at some point during the dash?