static bool BackgroundLargerThanScreen(SpriteMover mover, CameraWorldWrapper camera)
        {
            float cameraArea     = camera.GetScreenDimsInWorldCoords().magnitude;
            var   backgroundDims = mover.Dimentions;

            return(backgroundDims.magnitude > cameraArea);
        }
        public HorizontalTilingBackground(Camera camera, SpriteMover spriteMover, SpriteMover spriteCopyMover)
        {
            if (!SpriteMoverDimsEqual(spriteMover, spriteCopyMover))
            {
                throw new ArgumentException("backgrounds must have equal sizes");
            }

            _cameraWorldWrapper = new CameraWorldWrapper(camera);

            if (!BackgroundLargerThanScreen(spriteMover, _cameraWorldWrapper))
            {
                throw new ArgumentException("background must be larger than screen (in world units)");
            }

            _bgMover     = spriteMover;
            _copyBgMover = spriteCopyMover;

            // place the one copy of bg at the center of the camera, the other tiled to the left
            _bgMover.MoveCenter(_cameraWorldWrapper.Position);
            TileSpriteToTheLeft(_bgMover, _copyBgMover);
        }