Move player based on elapsed time, better framerate handling