おそらくプレイヤーの座標に直接移動量(少数を含んでいる)を加算してるから方向によってちょっと差がでてるのでは?
座標は浮動小数つかえないので少数以下が切り捨てられる。
対策として例えば
1 変数xとyを用意する。(フレーム開始時だけプレイヤーの座標を変数xとyにぶっこむ)
2 方向ボタンが押されたら移動量を変数xとyに加算する。
3 プレイヤーの座標xとyを、変数xとyに変更する。