public Player(Game game, ref Texture2D theTexture, Vector2 initialPosition, Rectangle rectangle, params IController[] controllers)
     : base(game)
 {
     _texture = theTexture;
     _initialPosition = initialPosition;
     _position = initialPosition;
     _controllers = controllers;
     KeepInBound();
     _spriteRectangle = rectangle;
     var screenBounds = game.GetScreenBounds();
     if (screenBounds.Width == 0)
         throw new ArgumentOutOfRangeException("Screen Bounds");
     if (_spriteRectangle.Width < 1)
         throw new ArgumentOutOfRangeException("Player sprite");
     if (screenBounds.Width < _spriteRectangle.Width)
         throw new ArgumentOutOfRangeException("ScreenBounds or PlayerSprite");
 }