Cool idea! Just 1 implementation nit: Changing direction on keypress instead of on update means that you can mash 2 direction keys to travel diagonally very fast.