ich muss ja aber ne Referenz auf Window machen um es an die Funktion zu übergeben.
Ja du musst es machen, weil wir es dir im anderen Thread gesagt haben. Aber du hast leider noch überhaupt nicht verstanden, was Referenzen sind und warum man sie zu welchem Zeitpunkt verwenden sollte. Tut mir leid, aber dir fehlen in dieser Hinsicht einfach Grundlagen. Nimm dir ein Buch und ließ es und dann wirst dir so einiges klar werden.
Dein Sprite wird deswegen nicht bewegt, weil du eine Kopie eines Sprites anlegst(die nur innerhalb der Funktion existiert), diese bewegst und sie anschließend wieder zerstört wird. Das was du da bewegst, ist einfach nicht das Sprite, das du bewegen willst.
Edit: Stell es dir einfach so vor. Du leihst dir ein Buch von einem Freund aus und kopierst dir einige Seiten des Buches und versiehst diese Seiten mit deinen Notizen. Wenn du dem Freund das Buch wieder gibst, dann weiß er nicht, dass du diese Notizen gemacht hast und wird sich auch nicht über sein verunstaltetes Buch beschweren. Du willst allerdings direkt in das Buch krakeln. Denn der Freund soll lesen, was du im Buch verändern möchtest und das klappt nur, wenn du nicht die Seiten kopierst, sondern direkt reinmalst.