Setz doch mal ein paar Print als Debug ein. So siehst du, an welcher Stelle er grade ist und welchen Wert die Variablen haben.
Vielleicht hilft das weiter?! Im Simulator läufts, und vom logischen Verständnis her, sollte das ganze +-100% pro Richtung ergeben. Und das war bestimmt deine Absicht