Du musst gar nicht alle Objekte verschieben.
Erstellen einfach irgendein Objekt vom Typ TImageSprite, dass muss nicht mal ein Bild haben:
type TScrollObjekt = class (TImageSprite)
procedure DoMove (MoveCount: Integer);override;
end;
procedure TScrollObjekt.DoMove(MoveCount: Integer);
begin
inherited DoMove (MoveCount);
Engine.X:= -x + (Engine.Width - Width) div 2;
Engine.Y:= -y + (Engine.Height - Height) div 2;
end;
Jetzt reicht es aus, dieses ScrollObjekt zu verschieben,
alle anderen Objekte gehen in die entgegengesetzte Richtung, und
damit hättest du eine Scrolleffekt.
Gruß
Basti