Soweit ich es beurteilen kann, vergleichst du mit "Variable [0003] == 2" nur, ob die "Unten"-Taste gedrückt wurde. Falls es sich um ein 2D-Spiel handelt, sollte das in den seltensten Fällen zu einem Sprung führen.

Wird in der [0003]-Variable generell die gedrückte Taste vermerkt? Dann müsstest du nach dem ersten Key Input Processing den Wert irgendwo vermerken, um beim zweiten Mal zu vergleichen, ob tatsächlich dieselbe Taste gedrückt wurde.
Und berücksichtigt die Move Route bereits die Blickrichtung der Spielfigur? Sonst müsste das auch noch abhängig vom Tastenwert aufgesplittet werden.