arrow keys
Sprite and color detection are based on pixels, so it makes sense for something to stop if it isn't moving atop a flat surface. However, loads of variables and blocks would take more planning. This works using an even more simple code. However, the catch is that it is inserted into custom blocks which run without screen refresh. This allows the code to run much faster and look better, but it does get stuck very easily.