Rewrote player movement code

Now it relies less on "real" friction