Was du brauchst ist ein Viewport.
Der ist genau für das Verhalten von Nutzen welches du beschreibst.
Du definierst einen Viewport als ein Rechteck mit X, Y, Breite und Höhe.
Ein Viewport besitzt auch einen Z-Wert.
Viewports selbst sind nach ihrem Z-Wert sortiert und es werden alle Bilder (Sprites, Tilemap, Pictures, etc) innerhalb eines Viewports so gezeichnet, dass sie niemals über einem Bild eines höheren Viewports und niemals unter dem Bild eines niedrigeren Viewports liegen.
Im Anschluss kannst du einem Sprite bei dessen Erstellung einen Viewport zuweisen, das geschieht im Konstruktor der Sprite-Klasse.
Ich weis nicht wie es bei den neueren Makern ist, aber bei den älteren konnten die Dimensionen eines Viewports im Nachhinein nichtmehr verändert werden und auch einem Sprite konnte kein neuer Viewport mehr zugewiesen werden.
Ohne Ruby wird das, meines Erachtens nach, nicht möglich sein.
Mit Ruby ist das jedoch "relativ" leicht, falls man sich denn damit auskennt.
Ein Code-Beispiel für den Einsatz eines Viewports wäre:
Das müsstest du nur schön in ein Programm verpacken welches du bequäm über die "call script" Funktion der Events benutzen kannst.
Als persönlicher Tipp wäre es wohl am besten eine eigene Klasse dafür zu schreiben welche sich darum kümmert, mit einer "update" Methode um das Bild zu bewegen.
Dann kannst du eine globale Variable verwenden um eine Instanz dieser Klasse ansprechen zu können und diese dann in einem Parallel Process updaten lassen.