-   
-    /// <summary>  
-    /// Recorta un rectangulo de un AnimateSprite y recalcula la  
-    /// coordenada inisial de dibujo para adecuarlos a los  
-    /// limites de resolucion de pantalla actuales, se debe usar como ultimo  
-    /// paso antes del blitting.  
-    /// </summary>  
-    /// <param name="currentDestination">  
-    /// Se modifica por referencia, se recalculan las coordenadas  
-    /// para que se adecuen a los limites de resolucion de pantalla  
-    /// actuales y al rectangulo de dibujo recalculado.  
-    /// </param>  
-    /// <param name="spriteRect">  
-    /// Se modifica por referencia, se recalculan los cuatro  
-    /// puntos del rectangulo para lea solo el area de superficie  
-    /// que sera bliteada a otra superficie posteriormente  
-    /// </param>  
-    /// <returns>  
-    /// Retorna true si el rectangulo resultante es visible en pantalla,  
-    /// y false si el rectangulo no sera visible en pantalla.     
-    /// </returns>  
-    private bool SpriteClipper(ref Point currentDestination, ref Rectangle spriteRect)  
-    {  
-       if( (currentDestination.X + spriteRect.Width) <= 0 || currentDestination.X > ancho || (currentDestination.Y + spriteRect.Height) < 0 || currentDestination.Y > alto)  
-          return false;  
-   
-       #region Clipear en X  
-       if(currentDestination.X < 0)  
-       {  
-          spriteRect.X =  spriteRect.X - currentDestination.X ;  
-          spriteRect.Width = spriteRect.Width + currentDestination.X;  
-            
-          if(spriteRect.X >= spriteRect.Right)  
-             spriteRect.X = spriteRect.Right -1;  
-          if(spriteRect.X < 0)  
-             spriteRect.X = 0;  
-          if(spriteRect.Width < 1)  
-             spriteRect.Width = 1;  
-      
-          currentDestination.X = 0;  
-       }  
-   
-       if((currentDestination.X + spriteRect.Width) > ancho)  
-       {  
-          spriteRect.Width-= currentDestination.X + spriteRect.Width - ancho;  
-          if(spriteRect.Width <= 0)  
-             spriteRect.Width = 1;  
-            
-          if(currentDestination.X >= ancho)  
-                 currentDestination.X = ancho - spriteRect.Width;  
-       }  
-       #endregion  
-       #region Clipear en Y  
-       if(currentDestination.Y < 0)  
-       {  
-          spriteRect.Y =  spriteRect.Y - currentDestination.Y ;  
-          spriteRect.Height = spriteRect.Height + currentDestination.Y;  
-            
-          if(spriteRect.Y >= spriteRect.Bottom)  
-             spriteRect.Y = spriteRect.Bottom -1;  
-          if(spriteRect.Y < 0)  
-             spriteRect.Y = 0;  
-          if(spriteRect.Height < 1)  
-             spriteRect.Height = 1;  
-      
-          currentDestination.Y = 0;  
-       }  
-   
-       if(currentDestination.Y > (alto - spriteRect.Height))  
-       {  
-          spriteRect.Height -= currentDestination.Y + spriteRect.Height - alto;  
-          if(spriteRect.Height <= 0)  
-             spriteRect.Height = 1;  
-            
-          if(currentDestination.Y >= alto)  
-             currentDestination.Y = alto - spriteRect.Height;        
-       }  
-       #endregion  
-       return true;  
-    }  
-   
-