Movement code. Buggy at map edges.