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); }