Completely implemented player movement including friction